我需要知道Xy Street的位置,我有3张桌子。
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中找到。我的问题是如何将这些附加到标准(如联盟或类似的东西)
答案 0 :(得分: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