关于sql:是一个用逗号分隔的表的查询是一个交叉连接查询?

Is a query with table separated by comma a cross join query?

我知道一些SQL,但我总是使用joinleftcross等,但在查询中,表之间用逗号分隔。在我看来这是一个交叉连接。但我不知道如何测试它(结果和我做的尝试是一样的)。

1
2
3
SELECT A.id, B.id
FROM A,B
WHERE A.id_B = B.id

即使是在这个伟大的问题(有着伟大的答案)中,"左、右、外和内连接有什么区别?"我没找到答案。


如果没有与两个表相关的where子句,这将是一个交叉联接。在这种情况下,它的功能相当于一个内部连接(由id_relid匹配记录)

它是连接表的旧语法,在大多数系统中仍然受支持,但连接语法在很大程度上是首选的。


这是1992年以前的标准SQL连接语法,您不应该在今天编写的任何内容中模仿或使用它。

where子句指定联接样式和列。您可以使用=*=或odocx1〔3〕进行连接、左连接或右连接。where中没有联接,使其成为交叉联接。


在我看来像个江户。

也就是说,双方都必须存在才能取得结果。

例如:

1
2
3
4
SELECT
  A.id, B.id
FROM A
  INNER JOIN B ON A A.id_rel = B.id


只要在WHERE子句中提供了联接条件,这种语法就会产生内部联接。例如:

1
WHERE tableA.value = TableB.Value