将单个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.source
是null
。
是否可以使用单个SQL查询输出这样的东西?
Project 2 | null
我正在寻找涵盖这两种情况的查询。
有什么想法吗?
答案 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;