如果第二个字段相同,我需要执行一个查询,该查询基于1字段查找值。
示例表:
id, what, why
1, 2, 2
2, 3, 4
3, 3, 2所以我希望结果返回2和3,因为它们都有2的原因。
但是,为什么(2)是未知的,所以我只知道什么,如果组合什么(2和3)有相同的为什么价值。合乎道理?任何帮助都是非常感谢的。
另一个例子也许更清楚
id, building, color
1, house, white
2, garage, red
3, garage, white我询问建筑物=房屋和建筑物=车库的位置,只有当它们具有匹配的颜色时才会给出结果。
发布于 2013-09-24 20:21:57
使用自连接。
SELECT t1.what
FROM Table t1
JOIN Table t2
ON t1.why = t2.why and t1.what != t2.what发布于 2013-09-24 19:59:32
SELECT what
FROM YourTable A
WHERE EXISTS(SELECT 1 FROM YourTable
WHERE what <> A.what
AND why = A.why)这个的这是一个演示。
发布于 2013-09-24 20:03:29
你可以这样做:
select *
from test
where why in (
select why
from test
group by why
having count(*) > 1 -- Use = 2 if you want exactly two items
)在广场小提琴上的演示。
内部查询查找所有具有重复的why,并使用它们的值筛选外部查询的行。
https://stackoverflow.com/questions/18990867
复制相似问题