2012-02-01 62 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