Sql 是否可以跳过Join关键字?

Sql 是否可以跳过Join关键字?,sql,Sql,我偶然发现KhanAcademy接受忽略了join关键字。 我认为这是一个bug,但这能作为一个特性工作吗?一种半显式连接,以获得更紧凑的语法。 以及一种更直观的方法,可以在学习SQL时从隐式连接逐渐过渡到显式连接 带自连接 具有自连接功能的新版本: SELECT * FROM table1 a, table2 b on a.id = b.id, table2 c on a.id = c.id; SELECT * FROM table1 a, table2 b, table2 c where

我偶然发现KhanAcademy接受忽略了join关键字。 我认为这是一个bug,但这能作为一个特性工作吗?一种半显式连接,以获得更紧凑的语法。 以及一种更直观的方法,可以在学习SQL时从隐式连接逐渐过渡到显式连接

带自连接 具有自连接功能的新版本:

SELECT * FROM table1 a,
table2 b on a.id = b.id,
table2 c on a.id = c.id;
SELECT * FROM table1 a, table2 b, table2 c
where a.id = b.id
and a.id = c.id;
SELECT * FROM table1 a
join table2 b on a.id = b.id
join table2 c on a.id = c.id;
隐式自联接:

SELECT * FROM table1 a,
table2 b on a.id = b.id,
table2 c on a.id = c.id;
SELECT * FROM table1 a, table2 b, table2 c
where a.id = b.id
and a.id = c.id;
SELECT * FROM table1 a
join table2 b on a.id = b.id
join table2 c on a.id = c.id;
显式自联接:

SELECT * FROM table1 a,
table2 b on a.id = b.id,
table2 c on a.id = c.id;
SELECT * FROM table1 a, table2 b, table2 c
where a.id = b.id
and a.id = c.id;
SELECT * FROM table1 a
join table2 b on a.id = b.id
join table2 c on a.id = c.id;

我发现这在sqlite3中有效,因为逗号在表之间时被解释为join关键字:

他还就此写了一篇文章:

您的问题是什么?我们为什么不能删除join关键字?如问题所述;这是否有效?不,您不能删除它,因为这是SQL标准中指定的方式。SQL是一种有点冗长的语言。可以使用更简单的语法吗?对他们可能会被介绍吗?我认为这是不可能的。今天的小贴士:坚持现代的、明确的连接语法。更易于编写而无错误,更易于读取和维护,并且在需要时更易于转换为外部联接。