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