我需要从多个联合中选择不同的值。 我需要在不同数据库的多个表上使用union。 但我尝试使用此代码:
SELECT DISTINCT name ((SELECT name FROM tab1) UNION (SELECT name FROM tab2))
我有这个错误:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNION (SELECT name FROM tab2 )' at line 1
答案 0 :(得分:2)
试试这个:
SELECT DISTINCT name FROM (
SELECT name FROM tab1
UNION
SELECT name FROM tab2
) TABLEALIAS
答案 1 :(得分:2)
你不需要使用" distinct"。 UNION已经为您提供了独特的结果。
SELECT name FROM tab1
UNION
SELECT name FROM tab2
这给你正确的结果。顺便说一下,如果你想从不同的数据库中获取数据,你需要使用db name。请参考以下内容;
SELECT name FROM db1.tab1
UNION
SELECT name FROM db2.tab2
答案 2 :(得分:1)
SELECT DISTINCT name FROM ((SELECT name FROM tab1) UNION (SELECT name FROM tab2)) as sth
答案 3 :(得分:0)
您需要FROM
和内部结果的别名:
SELECT DISTINCT name
FROM (
SELECT name FROM tab1
UNION
SELECT name FROM tab2
) x
但是,您根本不需要DISTINCT
,UNION
已删除重复项。