【发布时间】:2017-03-21 04:08:54
【问题描述】:
假设我有以下表格:
Table A Table B
| a | b | c | | a | b | c |
|---|---|---| |---|---|---|
| a | b | c | | a | b | c |
| a | c | d | | a | c | d |
| c | d | e | | a | b | c |
| f | g | h | | o | p | q |
| a | a | a | | a | b | c |
我想找出与两个表不同的所有行。
这给了我 A 中不在 B 中的行:
SELECT a, b, c FROM A
EXCEPT
SELECT a, b, c FROM B;
| a | b | c |
|---|---|---|
| a | a | a |
| c | d | e |
| f | g | h |
这给了我 B 中不在 A 中的行:
SELECT a, b, c FROM B
EXCEPT
SELECT a, b, c FROM A;
| a | b | c |
|---|---|---|
| o | p | q |
所以结合我尝试使用的两者
SELECT a, b, c FROM A
EXCEPT
SELECT a, b, c FROM B
UNION
SELECT a, b, c FROM B
EXCEPT
SELECT a, b, c FROM A;
但它仍然只给我 B 的行。
如何从两个表中获取行,像这样?
| a | b | c |
|---|---|---|
| a | a | a |
| c | d | e |
| f | g | h |
| o | p | q |
【问题讨论】:
-
您是否尝试对每个 EXCEPT 语句使用括号
()? -
是的,这给了我
Error: near "(": syntax error。 -
在外面使用
SELECT * FROM
标签: sql sqlite union sql-except