我遇到的情况是有一个这样的关系表:
eaters:
id name fruit
1 jack banana
2 jack apple
3 jane banana
4 jane apple
5 jane orange
6 richard banana
7 richard apple
现在,谁吃过和“ jack ”一样的水果?
例如在上表中,'Richard' 就是答案。
我想到的伪查询是:
SELECT name AS the_guy
FROM eaters
WHERE
(SELECT fruit FROM eaters WHERE name=the_guy) =
(SELECT fruit FROM eaters WHERE name='jack')
而且我不知道这在 MySQL 中是否可行。现在我获取整个表并使用 PHP 从结果中提取答案,这不是一个好的方法。有什么建议吗?
最佳答案
你可以这样写:
SELECT e2.name
FROM eaters e1
INNER JOIN eaters e2
ON e1.fruit = e2.fruit
WHERE e1.name = 'Jack'
AND e2.name != 'Jack'
GROUP BY e2.name
关于MySQL SELECT FROM a relation table WHERE 他们有相同的亲戚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53738339/