mysql - SQL - OUTER JOIN a UNION-ed 表

标签 mysql sql join union outer-join

我是 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_1TABLE_2:

SELECT ID, Name FROM TABLE_1 UNION SELECT ID, Name FROM TABLE_2

我希望最终结果从 TABLE_1TABLE_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"

DB Fiddle Here

关于mysql - SQL - OUTER JOIN a UNION-ed 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54661499/

相关文章:

mysql - 仅当列值不相等时才执行 SQL 过滤命令

php - 是否可以将完整记录(整行)连接到 MySQL 中的一列中?如何?

mysql - 如果计数大于一,则替换第二个值

mySQL, 三张表 : UPDATE multiple rows (each with a different value)

sql - 将 6 个表加入单个查询?

SQL连接两个表以从第二个表中拆分电子邮件

未找到行时 MySQL 返回值

mysql - SQL 索引性能 - ASC 与 DESC

MySQL 加入 vs 子查询 vs?

mysql limit offset 结果乱序