2012-02-01 46 views
0

我想不出一个简单的短语这个问题,所以我只是把它放在那里:是否有可能使用其他查询的结果搜索MySQL表? (使用PHP的价值)使用先前查询的结果搜索MySQL表

我想要做的是检索用户的联系人的所有分数。

例如:

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' 

我想做到这一点,而无需使用WHILE循环在PHP中,因为如果用户碰巧有200个联系人(不太可能),这将是很多的查询。

我确定有一个相当简单的方法来做到这一点,但我只是想不起来。请帮助!

回答

1

您可以使用子查询:

SELECT score_id FROM scores WHERE member_id IN (SELECT user_2_id FROM contacts WHERE member_id = '1') 

或者你可以使用加入:

SELECT s.score_id 
FROM scores s 
INNER JOIN contacts c 
ON s.member_id = c.user_2_id 
WHERE c.member_id = '1' 
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