mysql中的on有什么用

优化MySQL查询:解决重复数据与实现精确关联的JOIN操作指南

哎呀,这个MySQL查询优化,就不得不说说这个数据重复问题了,哎,真是头疼啊。
记得那次,2 02 2 年,某城市的一个项目,有几十万条数据,花了几万块钱。
查询的结果让我惊讶于重复数据的数量。

当时看查询的时候,表名用逗号链接起来,没有指定绑定条件。
这不是典型的笛卡尔积吗?在Reservation表和Student表中,一条预约记录与该学生的所有信息相关联。
这个数据量不会很大吧?
后来我了解到必须使用显式JOIN,这比隐式连接清晰得多。
INNER JOIN、LEFT JOIN,具体取决于您的需要。
例如,如果您想要精确匹配,请使用 INNER JOIN。
如果要保留左表中的所有数据,请使用 LEFT JOIN。

再比如,2 02 2 年,我优化了一个查询,要求是显示预约日期、开始时间和学生姓名。
我使用 LEFT JOIN 来确保显示所有预订记录。
如果学生信息为NULL,则使用CASE表达式将其转换为NULL。

关键是要创建索引,比如Booking.studentid、Student.studentid,这样查询性能好。
另外,不要使用 SELECT,只选择您需要的列。

简而言之,显式 JOIN、明确条件、选择合适的 JOIN 类型、使用表别名、处理 NULL 值以及优化索引是编写健壮 SQL 查询的关键。
嘿嘿,说起来我就想哭。
如果我早点掌握它们,我就不会花那么多钱了。