2016-06-15 2 views
0

Мне нужно знать, где можно найти Xy Street, и у меня есть 3 таблицы.SQL Добавить критерии

select t.nev 
    from hospital.person sz, hospital.place t, hospital.member ti 
where 1=1 
    and sz.residence_placeid=t.placeid 
    and sz.residence_placeid=ti.placeid 
    and t.placeid=ti.placeid 
    and t.street like 'Xy Street %' 
order by t.street 

Адреса также могут быть найдены в таблице sz и ti. Мой вопрос заключается в том, как добавить эти критерии (например, объединение или что-то в этом роде).

ответ

1

Во-первых, вы должны избегать использования запятых в вашем FOR, потому что это затрудняет чтение запроса, и этот стиль запроса устарел , Вместо этого используйте явно JOIN. Что касается вашего вопроса, если в двух других таблицах также есть столбец street для адреса, вы можете просто добавить еще два условия в свой пункт WHERE. Вот как может выглядеть ваш обновленный запрос:

SELECT t.nev 
FROM hospital.person sz INNER JOIN hospital.place t 
    ON sz.residence_placeid = t.placeid 
INNER JOIN hospital.member ti 
    ON sz.residence_placeid = ti.placeid AND t.placeid=ti.placeid 
WHERE t.street like 'Xy Street %' OR 
     sz.street LIKE 'Xy Street %' OR 
     ti.street LIKE 'Xy Street %' OR 
ORDER BY t.street