Left jion使用心得(多条件连接)

来源:互联网 发布:ubuntu dns配置详解 编辑:程序博客网 时间:2024/04/28 00:52
 

表记录A如下:

Id   ClassName

1    省代

2     市代

表记录B如下

Id   classId   ProductId   Price

1          1            1                 20

2           2            1                30

3          1             2               40

SQl 语句如下:

select * from A left join B on a.Id=b.ClassId where ProductId=2
结果只显示一条记录,并不是我想要的结果,我的想要的结果是一个产品所有客户级别的类型。这里有两个客户级别,所以,记过应该是
两条记录。参照left join的原理:left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.
换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录。
按照这一原理,要显示两条,那B表中的记录必须没有ClassId=2的记录。因此可以按照两条件来连接查询,sql语句如下:
 select * from A left join B on a.Id=b.ClassId and ProductId=2。
这样就是想要结果。到这才发现,原来left join可以用多条件连接