表记录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可以用多条件连接