我有两张桌子:
person
----------
id name
1 peter
2 paul
3 mary
4 george
5 andy
和
living
-------
id key
1 1
2 1
3 2
4 2
5 2
如果我知道名称,那么查找属于同一个人的所有 id 的最有效查询是什么。假设我想知道:“玛丽和谁住在一起”?在person中,Mary 的 id 是 3。我检查了living的 key,它属于 Mary,它是 2。现在我可以检索living中与 key 2 一起使用的所有 id,并且我有与 Mary 一起生活的 id。
这是我到目前为止得到的:
SELECT p2.name
FROM person p1
JOIN living l1
ON p1.id = l1.id
JOIN living l2
ON l1.key = l2.key
JOIN person p2
ON l2.id = p2.id
WHERE p1.name = 'mary'
有没有更好的办法?结果似乎还不错,但是执行三感觉不对JOINS
。