![](/img/trans.png)
[英]SQL - How to select rows with the same ID values where all other column values are also identical
[英]SQL select id where other columns are identical
如果我有一个包含所有者,wallColor和roofColor列的属性表(假设一个所有者可以拥有多个房屋,但是房屋只能拥有一个所有者),那么我该如何选择所有仅拥有具有相同墙壁和屋顶颜色的房屋的所有者?
所以如果我有
owner wallColor roofColor
Bob Red Green
Bob Blue Blue
Greg Yellow Yellow
Greg Black Black
它应该只返回Greg,因为Bob的房子有红色的墙壁和绿色的屋顶。
SELECT DISTINCT owner
FROM ytable
WHERE owner NOT IN
(
SELECT owner
FROM ytable
WHERE wallColor <> roofColor
)
SELECT DISTINCT t1.owner
FROM tablename t1
WHERE t1.owner NOT IN
(
SELECT DISTINCT t2.owner FROM tablename t2
WHERE t2.wallColor != t2.roofColor
)
从...那里选择显着的所有者wallcolor = roofcolor除了...在...那里选择[DISTINCT]拥有者wallcolor <> roofcolor;
:-)
SELECT DISTINCT owner FROM table WHERE wallColor=roofColor AND
owner NOT IN ( SELECT DISTINCT owner FROM table WHERE wallColor<>roofColor )
那将是我的方法,但可能需要进行一些调整。
使用exists
运算符:
select *
from table t
where not exists(
select 1
from table t1
where t1.owner = t.owner and t1.wallColor <> t1.roofColor
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.