我有table1
和table2
我的目标是执行查询以获取所有可用数据(匹配代码),这实际上是我的查询:
SELECT * FROM table1
INNER JOIN table2
ON table1.code = table2.code
一切正常,但如果例如table2
中没有特定代码,则不会返回table1
的数据。一个例子:
TABLE1
|CODE|Info|
|R789|Home|
|R788|Away|
TABLE2
|CODE|DESCRIPTION|
|R789| Test
将仅返回R789
的内容,但我希望还必须返回R788
的内容,当然只有table1
的字段会导致table2
记录不存在。我怎么能这样做?
答案 0 :(得分:2)
使用LEFT JOIN
,如果两个表中都存在“CODE”,则会返回两个表中的内容;如果代码不存在,则表1中的项目NULL
s表示项目中的项目
为此提供了大量文档。这是one example和another one。
答案 1 :(得分:0)
如果要从两个表中获取所有数据但匹配if对应,则应使用完全外连接:
select a.*,
b.*
from table1 a
full outer join
table2 b
on a.code=b.code
它将返回如下内容:
|CODE|Info|CODE|DESCRIPTION|
|R789|Home|R789|Test|
|R788|Away|null|null|
此致