繁体   English   中英

sql选择是否有多个

[英]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

在这里检查http://sqlfiddle.com/#!2/ee040/3

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM