我试图构造以下性质的查询:如果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)
,但我想我的语法不正确。任何关于如何解决这个问题的建议都将受到极大的赞赏。
这个技巧。谢谢! – 2013-05-10 10:49:54