如果只要符合条件你都想得倒的话,可以用下面的语句select table1.*,table2.*,table3.* from table1 leftjoin table2 on table1.x=table2.x left join table3 on (table2.y=table3.y and table1.id = 1 ) 这样的话可以得到你要的所有记录
修改一下你的sql语句 select table1.*,table2.*,table3.* from table1 left join table2 on table1.x=table2.x inner join table3 on table2.y=table3.y where table1.id = 1
--A.修改如下: select table1.*,table2_3.* from table1 inner join (select distinct * from table2 inner join table3 on table2.y=table3.y) table2_3 on table1.x=table2_3.x where table1.id = 1 --B.修改如下:這樣不管table2和table3有多條記錄,table1總是只返回不重復記錄 select table1.* from table1 where exists(select 1 from table2 inner join table3 on table2.y=table3.y and table1.x=table2.x) and table1.id = 1
不知道你有没有试过inner join 与=号功能一样的所以你的语句可以改成 select table1.*,table2.*,table3.* from table1,table2,table3 where table1.x=table2.x and table2.y=table3.y and table1.id = 1
select table1.*,table2_3.* from table1 inner join (select distinct * from table2 left join table3 on table2.y=table3.y) table2_3 on table1.x=table2_3.x where table1.id = 1
这样就行: select table1.*,table2.*,table3.* from table1 left outer join table2 on table1.x=table2.x left outer join table3 on table2.y=table3.y where table1.id = 1 and table3.x is not null ---------------------------------------------- 现在得到的满足table1.x=table2.x和table2.y=table3.y的所有记录,这个是个与的查询,那如果我要找到1。满足以上的记录2。当table3中没有与table2相匹配的记录但是table1.x=tabl2.x有的记录怎么办啊,麻烦了个位
如果确保table2,table3都要与之对应有记录就:select table1.*,table2.*,table3.* from table1 left outer join table2 on table1.x=table2.x left outer join table3 on table2.y=table3.y where table1.id = 1 and table2.x is not null and table3.x is not null
select table1.*,table2.*,table3.* from table1 left join table2 on table1.x=table2.x inner join table3 on table2.y=table3.y where table1.id = 1
select table1.*,table2_3.* from table1 inner join (select distinct * from table2 inner join table3 on table2.y=table3.y) table2_3 on table1.x=table2_3.x where table1.id = 1
--B.修改如下:這樣不管table2和table3有多條記錄,table1總是只返回不重復記錄
select table1.* from table1 where exists(select 1 from table2 inner join table3 on table2.y=table3.y and table1.x=table2.x) and table1.id = 1
select table1.*,table2.*,table3.*
from table1,table2,table3
where table1.x=table2.x and table2.y=table3.y and table1.id = 1
select table1.*,table2.*,table3.* from table1 left outer join table2 on table1.x=table2.x left outer join table3 on table2.y=table3.y where table1.id = 1 and table3.x is not null
----------------------------------------------
现在得到的满足table1.x=table2.x和table2.y=table3.y的所有记录,这个是个与的查询,那如果我要找到1。满足以上的记录2。当table3中没有与table2相匹配的记录但是table1.x=tabl2.x有的记录怎么办啊,麻烦了个位