我有两个标签a和b。这两个表共有1列:a.a1和b.b1。表a有800行,表b有500行。显然,表a中的某些行在表b中没有任何匹配的行。现在,我想通过发出以下查询来查看“a中哪些行与b中的行不匹配”:
select * from A
LEFT JOIN B on A.A1 = B.B1
where date(b.trt_date) = '2017-11-18' and a.tcs_type = 'SALES'
order by a.tcs_no asc
此查询给出的结果与内部联接相同。为什么?
当我把这个查询放到一个视图中时,它给出了预期的结果
这应该非常简单。我只是糊涂了。
我正在使用:mysql、navicat、sqlyog
2条答案
按热度按时间rvpgvaaj1#
您的查询:
类似于
INNER JOIN
因为你把这个WHERE
条件:你用这种方式,把每一排
b.trt_date
是null
.条件如何封装在
ON
条款LEFT JOIN
作品:如果不满足主表->的条件,则不显示行
如果主表条件为ok,次表条件为not->显示次表所有字段的行为
NULL
如果主表和辅助表都可以->显示包含所有信息的行6uxekuva2#
类似的文章在这里如何检索mysql中不匹配的结果