急需SQL语句一条,想了半天无从下手,请高手指教!!! ( 积分: 100 )

  • 主题发起人 主题发起人 xiazhiguo
  • 开始时间 开始时间
X

xiazhiguo

Unregistered / Unconfirmed
GUEST, unregistred user!
我有三个表,里面的数据都不太一样,我想把这三个表连起来,形成一个数据集,
表 1
pid pname unitid
123 123 100001
124 124 100001
125 125 100001

表 2
pid pname unitid
123 123 100003
124 124 100005

表 3
pid pname unitid
123 123 100006

最后形成的数据集,如下
pid_1 pname_1 unitid_1 pid_2 pname_2 unitid_2 pid_3 pname_3 unitid_3
123 123 100001 123 123 100003 123 123 100006
124 124 100001 124 124 100005
125 125 100001
 
select a.pid as pid_1,a.pname as pname_1 ,a.unitid as unitid_1,
b.pid as pid_2,b.pname as pname_2 ,b.unitid as unitid_2,
c.pid as pid_3,c.pname as pname_3 ,c.unitid as unitid_3
from table1 a left join table2 b on a.pid=b.pid left join table3 c on b.pid=c.pid
 
如果table1的pid恰好是其他表的pid的合集,楼上的方法正确。
pid好像是一个编码,应该有那么一个表,它拥有比较全的pid,都跟它连接比较保险,但可能有很多荣誉的空数据(再用where过滤即可)
 
楼上说的更严密一些.或者把LEFT JOIN 改为FULL JOIN 就行了.这样肯定没有漏掉数据.
 
非常感谢,以后有SQL的问题,再问你。[8D]
 
后退
顶部