[英]sql select if they have more than once
我有两个共享相同ID的表:
桌子颜色:
id color
---------
1 blue
1 red
1 green
1 blue
2 green
2 yellow
2 orange
3 red
3 orange
3 yellow
3 orange
表名:
id name
---------
1 John
2 Anna
3 Mike
查找任何颜色多次出现的名称的查询将是什么。
例如:John和Mike是答案,因为John有两次蓝色,而Mike也有两次橙色。
非常感谢
SELECT A.name, B.color, count(*) 'color count'
FROM Names A JOIN Colors B on A.id = B.id
GROUP BY A.id, B.color
HAVING Count(*)>1
SELECT name, color, COUNT(*)
FROM Names
JOIN Colors
ON Names.id = Colors.id
GROUP BY name, color
HAVING COUNT(*) > 1
SELECT DISTINCT n.name FROM Colour c
INNER JOIN Names n ON (n.id = c.id)
GROUP BY n.name, c.colour
HAVING COUNT(*) > 1
Select n.Name
From names n
Join colors c on c.ID = n.ID
Group by n.Name
Having count(c.color) <> count(distinct c.color)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.