我正在尝试构建一个具有以下性质的查询:如果 x 在 A 和 B 的并集中,但不在 C 和 D 的并集中,则返回 x。
例如:
table table table table
+---+ +---+ +---+ +---+
| A | | B | | C | | D |
+---+ +---+ +---+ +---+
| 1 | | 4 | | 2 | | 3 |
| 2 | | 5 | | 3 | | 7 |
| 3 | | 6 | +---+ +---+
| 4 | | 7 |
+---+ +---+
我会寻找这个返回:
+---+
| E |
+---+
| 1 |
| 4 |
| 5 |
| 6 |
+---+
我试过了:
SELECT * from A
union
SELECT * from B
WHERE * not in
(SELECT * from C
union
SELECT * from D)
但我认为我的语法不正确。任何有关如何解决此问题的建议将不胜感激。