mysql 左连接多个表,其中两个表数据为空,导致不能用到索引

mysql 左连接多个表,其中两个表数据为空,导致不能用到索引,第1张

这种数据有意义吗?这种要从应用程序出发,写一个完整的数据处理过程,把数据取到内存,然后分析内存存储的数据,再返回。还有你数据采集方法就有问题,在做数据的时候怎么允许这么多的连接,我们在 *** 作数据的时候就做到表与表之间的关系紧密相连,把数据连接变换为数据更新。比如我像数据库插入A表ID、配置与单号、数量,那么与此同时我在另一个关联的表里面就更新了单号和数量。 *** 作过程用存储过程实现。这种 *** 作就为数据库逻辑性建立了基础,为后来的数据使用节约了查询时机。又比如说我们做ERP软件,在我们做一个表单提交动作的时候,我就已经插入了新的单据记录、更新了日志、更新了库存或者其他的状态、更新了BOM。最后我去查询某个表的时候实际上我们就是单纯的查询一个表,这样我们就为客户节约了查询时机。我不知道你同意我的做法不,反正这种查询你没做错,但是确切一点你的数据关系和整个数据库耦合性太差,造成你查询慢,而且我也看得明白你是要一个表一个表的去汇总,然后连接查询,汇总的时候就启用了group by机制,在做大量的排列进出栈工作。

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

满外连接的结果 = 左右表匹配的数据 + 左表没有匹配到的数据 + 右表没有匹配到的数据。

SQL99是支持满外连接的。使用FULL JOIN 或 FULL OUTER JOIN来实现。

需要注意的是,MySQL不支持FULL JOIN,但是可以用 LEFT JOIN UNION RIGHT join代替。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存