2014-02-13 4 views
0

Я думаю, что то, что я делаю, довольно элементарно, но до сих пор я не смог получить ожидаемые результаты.SQL-подзапрос в той же таблице

Я работаю на одной таблице, где значения из одной известной строки определяют, какие другие строки из той же таблицы выбраны.

Для того, чтобы проиллюстрировать, что я хочу в двух запросов:

SELECT id, gender, sport, age 
    FROM 
     person 
    WHERE 
     id = '123'; 

-- using id, gender, sport and age as inputs into the next query 
SELECT id, age, sport, gender 
    FROM 
     person 
    WHERE 
     id != $1 AND looking_for_gender = $2 AND looking_for_sport = $3 AND min_age <= $4; 

Я пытался различные сорта присоединяется и подзапросы в предложении из, но не в состоянии получить удовлетворительный результат, чтобы получить то же самое от один запрос.

Заранее благодарим за любое направление.

ответ

1

Вы можете сделать это с помощью объединения:

SELECT p.id, p.age, p.sport, p.gender 
FROM person p cross join 
    (select * from person where id = 123 
    ) p1 
WHERE p.id <> p1.id AND p.looking_for_gender = p1.looking_for_gender AND 
     p.looking_for_sport = p1.looking_for_sport AND p.min_age <= p1.min_age; 
+0

Спасибо, подзапрос является то, что у меня на правильном пути. – markdsievers

Смежные вопросы