这三个MySQL查询有什么区别?

Mar*_*ark 5 mysql sql join

SELECT title,name FROM Lessons,Users WHERE Lessons.author = Users.email;
Run Code Online (Sandbox Code Playgroud)

SELECT title,name FROM Lessons JOIN Users ON Lessons.author = Users.email;
Run Code Online (Sandbox Code Playgroud)

SELECT title,name FROM Lessons INNER JOIN Users ON Lessons.author = Users.email;
Run Code Online (Sandbox Code Playgroud)

Lessons有一个名为authorindexed 的列作为a的外键Users.email.title是列中的列Lessons,name是列中的列Users

Lie*_*ers 12

三个语句之间没有区别,它们都是隐式或显式INNER JOIN

  1. 第一个语句使用隐式旧连接语法.虽然仍然支持此功能,但使用显式联接更具可读性和可维护性.不要使用旧式连接.

  2. 第二个语句使用显式连接而不指定连接类型.默认情况下,这是一个INNER JOIN

  3. 第三个语句也是一个显式连接,避免任何歧义.这是迄今为止最常用的编写连接的方法.