2012-02-08 3 views
0

У меня есть следующие структуры данных:SQL выбрать один из двух таблиц

TABLE requirements 
ID 1, AGE 1, GENDER 1, USERID 1 
ID 2, AGE 1, GENDER 2, USERID 2 
ID 3, AGE 1, GENDER 2, USERID 3 


TABLE offers 
IDoffers 1, AGE 1, GENDER 2, USERID 1 
IDoffers 2, AGE 1, GENDER 1, USERID 2 
IDoffers 3, AGE 1, GENDER 1, USERID 3 

Мне нужно выбрать строку таблицы требования - параметры этой линии, используемой для выбора данных из таблицы предложений , В цикле.

SELECT * FROM предложения WHERE (ID1 ... IDX от требований)

мне нужен этот результат:

FOR ID 1 FROM TABLE requirements - RESULT FROM offers: 
IDoffers 2, AGE 1, GENDER 1, USERID 2 
IDoffers 3, AGE 1, GENDER 1, USERID 3 

FOR ID 2 FROM TABLE requirements - RESULT FROM offers: 
IDoffers 1, AGE 1, GENDER 2, USERID 1 

FOR ID 3 FROM TABLE requirements - RESULT FROM offers: 
IDoffers 1, AGE 1, GENDER 2, USERID 1 

ответ

3
SELECT 
    rquirements.ID, 
    offers.* 
FROM 
    requirements 
    INNER JOIN offers ON requirements.AGE=offers.AGE 
    AND requirements.GENDER=offers.GENDER 

Циклы через все требования. Если вы хотите получить специальное требование, добавьте

WHERE rquirements.ID=<whatever> 
Смежные вопросы