如何在 JOIN 中 return main table 的内容?

How to return content of main table in JOIN?

我有 table1table2 我的目标是执行一个获取所有可用数据的查询(匹配代码),这实际上是我的查询:

SELECT * FROM table1
         INNER JOIN table2
         ON table1.code = table2.code

一切正常,但如果 table2 中不存在特定代码,则 table1 的数据不会被 return 编辑。一个例子:

表 1

|CODE|Info|
|R789|Home|
|R788|Away|

表 2

|CODE|DESCRIPTION|
|R789| Test

将 return 只有 R789 的内容,但我希望 R788 的内容也必须 returned,当然只有 table1 '因为 table2 中的记录不存在。我该怎么做?

使用 LEFT JOIN,如果 "CODE" 存在于两个表中,这将 return 内容,并且表 1 中的项目和表 2 中的项目 NULLs如果代码不存在。

有很多这方面的文档。这里是 one example and another one.

如果你想从两个表中获取所有数据,但如果对应则匹配,你应该使用全外连接:

select a.*,
       b.*
from   table1 a
full   outer join
       table2 b
on     a.code=b.code

它将returns像这样:

|CODE|Info|CODE|DESCRIPTION|
|R789|Home|R789|Test|
|R788|Away|null|null|

此致