使用join进行多次搜索

时间:2014-01-10 08:55:43

标签: mysql

我正在尝试使用此查询搜索table1或table2中具有id匹配的table3行

SELECT T1.*, T3.*,T2.*
FROM (
    select id
    from table1
    where condition like '%field%') T1
inner join table3 T3
ON T3.id=T1.id
left join (
    select id
    from table2
    where condition like '%field%') T2
ON T3.id=T2.id

如果在表T1中有匹配但在表2中没有匹配,则查询工作正常,但如果在table1中没有匹配但在table2中查询没有显示任何结果。

有人可以帮助我吗?

由于

1 个答案:

答案 0 :(得分:2)

做左连接以避免排除行,并添加一个具有您需要的条件的地方为了可读性,避免右连接和jsut使用正确的表顺序

SELECT T1.*, T3.*,T2.*
FROM Table3 T3 

left join (
    select id
    from table1
    where condition like '%field%') T1   
ON T3.id=T1.id

left join (
    select id
    from table2
    where condition like '%field%') T2
ON T3.id=T2.id

where t3.id is not null or t2.id is not null