我有這個查詢,當我不嘗試'IN'查詢時效果很好。查詢需要從用戶輸入中選擇兩個日期變量之間的所有行,也不能等於''。我的目標是,如果'item_number'列有重複我只需要抓住最高'ID'行。這可能嗎?有日期範圍選擇的MySQL查詢,但當另一列有重複時,也需要獲取一列的最高值。
這裏是我的查詢我努力但不工作:
SELECT item_number
, description
, style_number
, prod_attribute_1
, prod_attribute_2
, prod_attribute_3
, prod_attribute_4
, prod_attribute_5
, date_of_entry
, id
FROM import_items
WHERE date_of_entry between '$finalStart' and '$finalEnd'
AND TRIM(style_number) <> '') IN (SELECT item_number
, MAX(id)
FROM import_items
GROUP
BY item_number);
這裏是一個sqlFiddle我設置: http://sqlfiddle.com/#!9/e6c36d/1
結果應該是所有行,但只選擇最高的「身份證'當'item_number'是相同的。
見http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-我將要-A-極簡單的SQL查詢。另外,請考慮您的模式是否已充分標準化。 – Strawberry