SQL联接查询问题。(100)

  • 主题发起人 主题发起人 漂流的雲
  • 开始时间 开始时间

漂流的雲

Unregistered / Unconfirmed
GUEST, unregistred user!
表A,表B内容如下单号A 序号A 名称A 单号B 序号B 名称B001 1 C 001 1 KK001 2 D 001 7 SS002 1 C 003 1 H 如何查询得到以下内容单号A 序号A 名称A 单号B 序号B 名称B001 1 C 001 1 KK001 2 D 001 7 SS002 1 C 003 1 H
 
Select *From A Left Join B On a.单号A=B.序号B
 
to znxia: 刷新地这么快啊, 老大得给我们留点机会哈```[:D]
 
呵呵,看错了!楼主A表和B表关联条件是什么啊?A里面2个001和B里面的2个001好像管理组合方式有很多啊。
 
用左关联没用,查询后的记录是他的乘积。问题就这在,要如何才能做到这个效果
 
查询时,给每个单号后面加一个自动序号,二个表都加再用单号=单号 and 序号=序号,如果B表没有记录,那怎么办?
 
Create View V_A AsSelect T.*, (Select Count(*) From 表A T0 Where t0.单号A=T.单号A And T0.序号A<=T.序号A) as Index2From 表A TCreate View V_B AsSelect T.*, (Select Count(*) From 表B T0 Where t0.单号B=T.单号B And T0.序号B<=T.序号B) as Index2From 表B TSelect *From V_A Left Join V_B On a.单号A=B.序号B And A.Index2 = B.Index2
 
序号是没问题了,但A,B表的内容还有这种情况单号A 序号A 名称A 单号B 序号B 名称B001  1    C   001    1    KK001  2   D   001   7   SS003   1    H    002   1    C 如何查询得到以下内容单号A 序号A 名称A 单号B 序号B 名称B001 1 C 001 1 KK001 2 D 001 7 SS 002 1 C 003 1 H
 
Select *From V_A Full Join V_B On a.单号A=B.序号B And A.Index2 = B.Index2 或者Select A.*,B.*From V_A a Left Join V_B b On a.单号A=B.序号B And A.Index2 = B.Index2 Union AllSelect A.*,B.*From V_B b Left Join V_A a On a.单号A=B.序号B And A.Index2 = B.Index2 Where A.单号 is Null
 
多人接受答案了。
 
后退
顶部