如何在JOIN中返回主表的内容?

时间:2016-03-21 16:48:49

标签: php mysql sql

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

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记录不存在。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

使用LEFT JOIN,如果两个表中都存在“CODE”,则会返回两个表中的内容;如果代码不存在,则表1中的项目NULL s表示项目中的项目

为此提供了大量文档。这是one exampleanother 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|

此致