自学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