我想不出一个简单的短语来表达这个问题,所以我就把它放在那里:是否可以使用另一个查询的结果搜索MySQL表?(使用PHP的价值)
我想做的是检索用户联系人的所有分数。
例如:
SELECT user_2_id FROM contacts WHERE member_id = '1'
现在,我想从表"scores"中检索所有结果,其中member_id与上面查询的任何结果(任何"user_2_id")匹配。
我只是想不出该怎么做……但这是我试图获得的数据:
SELECT score_id FROM scores WHERE member_id = 'ANY RESULT FROM THE PREVIOUS QUERY'
我想在不使用PHP中的WHILE循环的情况下完成这项工作,因为如果一个用户碰巧有200个联系人(不太可能),那么会有很多查询。
我相信有一个相当简单的方法可以做到这一点,但我就是想不出来。请帮帮我!
SELECT s.score_id FROM contacts c INNER JOIN scores s ON s.member_id = c.user_2_id WHERE c.member_id = 1
您可以使用子查询:
SELECT score_id FROM scores WHERE member_id IN (SELECT user_2_id FROM contacts WHERE member_id = '1')
或者您可以使用join:
SELECT s.score_id
FROM scores s
INNER JOIN contacts c
ON s.member_id = c.user_2_id
WHERE c.member_id = '1'