考虑下表:
id | Name | City
1 | Roger | Atlanta
2 | Roger | Atlanta
3 | Roger | Miami
4 | Roger | Miami
现在我想要的是如果我输入id 1作为输入,输出应该是id 2(另一个在同一个城市)。我试过在“城市”专栏上进行自我加入,但它没有用。
答案 0 :(得分:4)
这会正常工作吗?
SELECT t2.id FROM MyTable t1
JOIN MyTable t2 ON (t1.City = t2.City AND t1.id <> t2.id)
WHERE t1.id = @input
答案 1 :(得分:0)
无论如何都要更快地避免加入并使用类似的东西:
SELECT `id` FROM `table` WHERE `City` IN
(SELECT `City` FROM `table` WHERE `id` = 1)
您可能还想检查名称是否匹配(在这种情况下,使用连接可能会更好)。我不确定,因为你没有说这是否是一个要求,我只是假设它不是。