日期:2014-05-16  浏览次数:20362 次

多表INNER JOIN 联查问题
select 表1.a,表2.b from 表1 INNER JOIN  表2 on 表1.id=表2.aid
上面这个双表联查很好用。我想问一下,就是三张以上的表联查也用这个INNER JOIN要如保写?
我现在是这样写的:
select 表1.a,表2.b,(select c from 表3 where id=表1.bid)as c from 表1 INNER JOIN  表2 on 表1.id=表2.aid
也就是:,(select c from 表3 where id=表1.bid)as c 这一部分改成:表3.c之后,后面的inner join 要如何写?
------解决方案--------------------
不用写的这么麻烦:

select 表1.a,表2.b,(select c from 表3 where id=表1.bid)as c from 表1 INNER JOIN  表2 on 表1.id=表2.aid

修改成这样就行:
select 表1.a,表2.b,表3.c
from 表1 
INNER JOIN  表2
        on 表1.id=表2.aid
INNER JOIN  表3
        on 表3.id=表2.bid
   

------解决方案--------------------
select 表1.a,表2.b,表3.c from 表1 INNER JOIN  表2 on 表1.id=表2.aid inner join 表3 on 
表3.id=表1.bid


------解决方案--------------------
select 表1.a,表2.b from 表1 INNER JOIN  表2 on 表1.id=表2.aid
inner join 表3 on 表1.id或者表2.id=表3.id

有时候也可以用括号,指定关联的顺序