我是 sql 新手。我有三个表,我想UNION
前两个表,然后OUTER JOIN
第三个表的结果,只选择所需的日期。
我已经做了UNION
但是我不知道OUTER JOIN
会怎么进来。
这些是我的表格:
TABLE_1
| ID | Name |
-------------------
| 1 | John |
| 2 | Peter |
TABLE_2
| ID | Name |
-------------------
| 3 | Anne |
| 4 | May |
TABLE_3
| ID | Name | Date |
--------------------------------
| 2 | Peter | 2019-02-13 |
| 3 | Anne | 2019-02-12 |
| 4 | May | 2019-02-13 |
这是我现在的查询,它只组合了 TABLE_1
和 TABLE_2
:
SELECT ID, Name FROM TABLE_1 UNION SELECT ID, Name FROM TABLE_2
我希望最终结果从 TABLE_1
和 TABLE_2
返回 ID 和 Name,其中 TABLE_3
中的日期是 2019-02 -13
.
我希望它看起来像这样:
| ID | Name | Date |
--------------------------------
| 2 | Peter | 2019-02-13 |
| 4 | May | 2019-02-13 |
最佳答案
试试这个,
SELECT A.* FROM
(
SELECT ID, Name FROM TABLE_1
UNION
SELECT ID, Name FROM TABLE_2
) AS A
JOIN TABLE_3
ON TABLE_3.ID = A.ID AND TABLE_3.DATE = "2019-02-13"
关于mysql - SQL - OUTER JOIN a UNION-ed 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54661499/