我想不出这个问题很简单,所以我只是把它说出来:是否可以使用其他查询的结果搜索MySQL表? (使用PHP获取它的价值)
我要做的是检索用户联系人的所有分数。
例如:
SELECT user_2_id FROM contacts WHERE member_id = '1'
现在我想从表'得分'中检索所有结果,其中member_id匹配来自上述查询的任何结果(任何'user_2_id')。
我只是想不出怎么做......但这是我想要的数据:
SELECT score_id FROM scores WHERE member_id = 'ANY RESULT FROM THE PREVIOUS QUERY'
我想在不使用PHP中的WHILE循环的情况下执行此操作,因为如果用户碰巧有200个联系人(不太可能),那将是很多查询。
我确信有一种相当简单的方法可以做到这一点,但我无法想到它。求救!
答案 0 :(得分:3)
SELECT s.score_id FROM contacts c INNER JOIN scores s ON s.member_id = c.user_2_id WHERE c.member_id = 1
答案 1 :(得分: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'