如何在没有匹配的MySQL列中插入NULL值?

时间:2015-04-30 07:56:15

标签: mysql join

我有以下两个表:

projects_expended:

+---------------+------------+----------+
| project_name  | project_id | Utilised |
+---------------+------------+----------+
| CStreamTax    |          1 |     3500 |
| CStreamTravel |          2 |      149 |
+---------------+------------+----------+

项目:

+------------+---------------------+
| project_id | project_budgetstart |
+------------+---------------------+
|          1 |               15000 |
|          2 |               15000 |
|          3 |                 500 |
+------------+---------------------+

我想制作两者的联合表,但是与Utilized一起使用 当project_id形成项目表时,字段填充NULL 不匹配projects_expended表中的一个条目。

我的基本尝试如下:

SELECT projects.*, projects_expended.utilised
  FROM projects_expended
  JOIN projects
    ON projects.project_id = projects_expended.project_id;

结果:

+------------+---------------------+----------+
| project_id | project_budgetstart | utilised |
+------------+---------------------+----------+
|          1 |               15000 |     3500 |
|          2 |               15000 |      149 |
+------------+---------------------+----------+

我理解为什么我得到的结果。但是我很沮丧。 我做了其他尝试(太多无法计算)。

2 个答案:

答案 0 :(得分:0)

使用左外连接:

SELECT projects.*, projects_expended.utilised
  FROM projects
  LEFT OUTER JOIN projects_expended

    ON projects.project_id = projects_expended.project_id;

答案 1 :(得分:0)

我找到了答案:

LEFT JOIN vs. LEFT OUTER JOIN in SQL Server

非常有用。

解决方案:

SELECT projects.*, projects_expended.utilised
  FROM projects_expended
 RIGHT JOIN projects
    ON projects.project_id = projects_expended.project_id;