多个联合后选择

时间:2012-04-22 13:29:01

标签: sql union

我需要从多个联合中选择不同的值。 我需要在不同数据库的多个表上使用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

4 个答案:

答案 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

但是,您根本不需要DISTINCTUNION已删除重复项。