mysql左连接没有数据还会查出来吗

mysql左连接没有数据还会查出来吗,第1张

会。

先连接后过滤:左连接leftjoin后,连接的右边的表未匹配到话会显示空值,但是加筛选条件就会把这些空值筛选掉,这些空值有部分其实用左连接是要保留下来的,结果经过过滤给过滤掉了,因此左连接的数据变少了,还是会被查出来的。

SQL查询左连接、右连接、内连接。左连接的定义是以左表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分。

error:1054 ???应该会明确告诉你那个字段什么的不存在吧,你检查一下?

为什么要用子查询呢,写一层sql查询就可以了啊。

select d.*,ds.stages_id, ds.mosters_id, dsm.monsters_id, dsm.moster_id, dsm.pos

from dungeon_info as d LEFT JOIN dungeon_stage_info as ds on d.dungeon_id = ds.dungeon_id

 LEFT JOIN

 dungeon_stage_moster_info as dsm on ds.monsters_id = dsm.monsters_id

以下均为个人看法,不喜勿喷。

(1)写法上的区别

现在是两张表,写起来简单,如果是多张表,多种连接,甚至包含子查询,那么如果只存在左连接或者右连接,那么写法上会麻烦很多。

比如 a left join b on XXX=xxxx

right join c XXX=xxxx

left join d XXX=xxx

where a.xxxx=F.xxxx

等等,甚至更麻烦一些,那么只存在一种连接的话,改写起来就会比较麻烦。

(2)语句只是工具

习惯上我们一般会找一个主表(起主要作用的表),并从它开始写相应的语句,假设只存在一种连接,那么为了写语句就可能会打乱思维方式。语句只是工具,当然是怎么方便怎么来,所以二者相应的都存在。

(3)语言的规范性

我说的是编程语言,只有左没有右,就好像只有前没有后,内部解析的时候可能都是一样的,但是外部写作的时候必须是完整的,如果只有做没有右,那么可能就是缺失的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/6170136.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-17
下一篇 2023-03-17

发表评论

登录后才能评论

评论列表(0条)

保存