使用先前查询的结果搜索MySQL表

时间:2012-02-01 03:56:23

标签: php mysql

我想不出这个问题很简单,所以我只是把它说出来:是否可以使用其他查询的结果搜索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个联系人(不太可能),那将是很多查询。

我确信有一种相当简单的方法可以做到这一点,但我无法想到它。求救!

2 个答案:

答案 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'