【发布时间】:2015-01-20 07:12:21
【问题描述】:
我正在尝试在 2 个表上运行左联接。我没有 group by,我唯一的条件是在第二张桌子上。但是,返回的行数少于第一个表。不是左连接假设从第一个表中获取所有数据吗? 这是我的 SQL:
select *
from tbl_a A left join tbl_b B
ON
A.Cnumber=B.Cnumber
and A.CDNUmber=B.CDNumber
and abs(A.duration - B.Duration)<2
and substr(A.text,1,3)||substr(A.text,5,8)||substr(A.text,9,2)=substr(B.text,1,8)
where B.fixed = 'b580'
表A有140000条记录,但返回的结果少于100000条记录。有什么问题,我该如何解决?
【问题讨论】:
-
我的主要问题是在结果中获得准确的 140000 条记录,如果条件匹配,有些记录有 tbl_b 记录,有些则不匹配
-
实际上我不能提供样本,但举个例子:考虑在学校匹配 2 个列表。一个为学校创建的全体学生。另一个由各自的部委创建。部委名单有更多记录。我想知道部列表中的哪些记录不在我们的列表中。没有一个表有主键,4 列一起可以使记录唯一。
标签: sql left-join conditional-statements records