使用单个SQL连接语句从多个MySQL表中添加条目,但前提是第二个表中有可用条目

时间:2015-06-14 10:06:40

标签: mysql join

将单个SQL查询与连接一起使用: 仅当有相应的条目可用时,如何从第二个表中添加条目?

project                                source

description   |  source                source_id   |  value
----------------------------           --------------------------------
Project 1     |  1                     1           |  Additional Info 1
Project 2     |  null                                 

当我输入

select project.description, source.value
from project, source
where project.source = source.source_id
and project.description = "Project 1";

根据需要,我收到了

Project 1   |   Additional Info 1 

但是当我在最后一行用Project 1替换Project 2时,我不会得到结果,因为project.sourcenull。 是否可以使用单个SQL查询输出这样的东西?

Project 2   |   null 

我正在寻找涵盖这两种情况的查询。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您可以使用LEFT JOIN表上的project来确保所有项目出现在结果集中,即使它们没有匹配的value source表。 project表格中不匹配的项目NULL会有value

SELECT project.description AS description, source.value AS value
FROM project LEFT JOIN source
ON project.source = source.source_id

<强>输出:

+--------------+--------------------+
| description  |       value        |
---------------+--------------------+
|  Project 1   |  Additional Info 1 |
|  Project 2   |  null              |
+--------------+--------------------+

答案 1 :(得分:1)

尝试使用左连接....

SELECT project.description, source.value FROM project LEFT JOIN source ON project.source = source.source_id;