除语法外,对于小片段,它们的工作原理完全相同。但是,如果有可能,请始终使用ANSI-JOIN编写新查询。
至于语义上,逗号用于在两个表之间生成CARTESIAN乘积,这意味着生成表A中的所有记录与表B中的所有记录的矩阵,因此具有4和6条记录的两个表分别生成24个记录。然后,使用WHERe子句,可以从此笛卡尔积中选择实际需要的行。但是,MySQL实际上并没有遵循并建立这个庞大的矩阵,但是从语义上讲,这就是它的意思。
JOIN语法是ANSI标准,可以更清楚地定义表之间的交互方式。通过将该
ON子句放在旁边
JOIN,可以使两个表链接在一起。
从功能上讲,它们将对您的两个查询执行相同的 *** 作。开始使用其他
[OUTER]JOIN类型时会有所不同。
特别是对于MySQL,逗号符号确实有一个区别
STRAIGHT_JOIN与JOIN相似,不同之处在于总是在右表之前读取左表。这可以用于联接优化器将表以错误的顺序放置的那些(很少)情况。
但是,利用这种差异是不明智的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)