我有一个简单的MYSQL查询联合两个表:
SELECT * FROM (
SELECT col1 AS col1A FROM table1
UNION
SELECT col1 AS col1B FROM table2
) AS t WHERE col1A <> col1B
Run Code Online (Sandbox Code Playgroud)
我col1在两个表中都调用了一个列,我只需要选择具有该列不同值的行,因此我将它们选为别名.当我运行此查询时,我得到:
Unknown column 'col1B' in 'where clause'
Run Code Online (Sandbox Code Playgroud)
表1数据:
col1
----
test
Run Code Online (Sandbox Code Playgroud)
表2数据:
col1
----
test
Run Code Online (Sandbox Code Playgroud)
查询应该不返回任何行,因为table1中col1中的每个值都等于table2中col1中的每个值,而不是它返回table2中的col1未知,尽管我选择它作为别名
我认为你需要查找适当的用法UNION.它将返回第一个查询的所有结果以及第二个查询的所有结果.这导致单个数据集,具有单个列(不是col1和col2),在这种情况下只是col1.
假设您尝试获取table1中table2中不存在的所有记录,您可以使用NOT EXISTS:
SELECT col1
FROM table1 t1
WHERE NOT EXISTS (
SELECT 1
FROM table2 t2
WHERE t1.col1 = t2.col1
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3905 次 |
| 最近记录: |