这有什么区别:
SELECT *
FROM table1, table2
WHERE table1.primary_id = table2.primary_id
而且:
SELECT *
FROM table1
FULL JOIN table2 ON table1.primary_id = table2.primary_id
答案 0 :(得分:4)
第一个查询是隐式INNER JOIN
,您应该始终使用显式语法。在这种情况下,查询将返回table1和table2中的记录。第二个查询将返回两个表的所有记录,如果另一个表中没有匹配则显示NULL
。
答案 1 :(得分:0)
FULL JOIN
关键字返回table1
中的所有行以及table2
中的所有行。如果table1
中的行中table2
中没有匹配项,或者table2
中的行中table1
中没有匹配项,则会列出这些行同样,填充nulls
。
第一个查询只返回table1
与table2
(primaryId
)匹配的结果。它相当于INNER JOIN
。