自學MySql初學者..我需要帶回parent_ids匹配的所有行,但一年不會。問題是,GROUP BY只爲每個parent_id返回一行,並且我想要所有的(所以,我一直在使用2個查詢,並將結果從第一個粘貼到第二個)如何在一個查詢中執行此操作?MySQL - GROUP By和DISTINCT,但返回所有行?
我:
id parent_id year
aa1 aa 2010
aa3 aa 2011
bb1 bb 2010
bb2 bb 2011
cc1 cc 2010
cc2 cc 2010
我需要返回:
id parent_id year
aa1 aa 2010
aa3 aa 2011
bb1 bb 2010
bb2 bb 2011
當前第一個查詢:
SELECT id, name, `year`, parent_id
FROM t1
GROUP BY parent_id
HAVING COUNT(DISTINCT `year`) > 1
然後,我貼我的成果轉化爲使用一個簡單的選擇查詢:
SELECT id, parent_id, name, `year`
FROM t1
WHERE parent_id IN ('......',')
ONLY_FULL_GROUP_BY甚至可以在5.7或以上被禁止,因此any_value()是有用;但它仍然違反了標準的sql行爲 – 2016-09-14 10:37:17
正確。刪除了對MySQL 5.7的引用。 – 2016-09-14 11:03:04