+ -
当前位置:首页 → 问答吧 → SQL问题:如何用Left Join 连接两个以上的表

SQL问题:如何用Left Join 连接两个以上的表

时间:2005-09-21

来源:互联网

已知有3个表分别为A,B,C

A表内容:

代号   品名

A1    一

A2    二

A3    三

B表内容:

代号   产量

A1    1000

A3    2000

C表内容:

代号   单价

A2    1.05

A3    1.10

希望能够用SQL语句生成D表,内容为

代号   品名   产量   单价

A1    一   1000

A2    二         1.05

A3    三   2000    1.10

我用Left Join(A表为主表)的办法可以分别连接A-B和A-C,但三个表一起连接的SQL语句就不会写了,除非生成临时表再用Left Join,但这未免太麻烦了,希望能有更简单的办法。请高手不吝指教,非常感谢!

作者: HLAI   发布时间: 2005-09-21

select a.代号,a.品名,b.产量,c.单价

from a left join b on a.代号=b.代号 left join c on a.代号=c.代号

作者: meeting   发布时间: 2005-09-22

不行啊!提示语法错误,操作符丢失.

作者: HLAI   发布时间: 2005-09-22

连猜带蒙的做出来了:

strSQL = "Select A.代号,A.品名,B.数量,C.单价 From (A Left Join B On A.代号=B.代号) Left Join C On A.代号=C.代号"

作者: HLAI   发布时间: 2005-09-22

引用:
以下是引用HLAI在2005-9-22 8:28:38的发言:不行啊!提示语法错误,操作符丢失.

提醒一下,在ACCESS连接两个以上的表要用括号把每一层的连接括起来才行,这在语法上有点不同。

strSQL = "Select A.代号,A.品名,B.数量,C.单价 From (A Left Join B On A.代号=B.代号) Left Join C On A.代号=C.代号"

作者: FlySacker   发布时间: 2005-09-22

在ACCESS中用查询设计器做出来,会自动生成SQL语句的。

作者: zhengjialon   发布时间: 2005-09-23

使用查询设计器时,如果显示的表之间没有建立关系的话,可以试试手动建立关系~这样access就会生成jion

作者: newguyer   发布时间: 2005-10-04

谢谢分享!我是来学习的,留个记号。

作者: lisan   发布时间: 2011-02-04