SQL附加条件

时间:2016-06-15 11:40:38

标签: sql oracle sql-like

我需要知道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中找到。我的问题是如何将这些附加到标准(如联盟或类似的东西)

1 个答案:

答案 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