如何通过在mysql中加入来替换union

时间:2012-06-06 07:01:57

标签: mysql join union

select service_type from service_type as s union select service_type
from cust_service_type as cs

我想将UNION替换为JOINS。请让我知道需要做出的更改。

1 个答案:

答案 0 :(得分:2)

MySQL不支持FULL JOIN,因此无法在MySQL中执行此操作。

在其他系统中,您可以使用以下语法:

SELECT  DISTINCT COALESCE(service_type, cust_service_type)
FROM    service_type s
FULL JOIN
        cust_service_type cs
ON      cs.service_type = s.service_type

SELECT  DISTINCT service_type
FROM    service_type s
FULL JOIN
        cust_service_type cs
USING   (service_type)

适用于支持JOIN ... USING

的系统

请注意,UNION比此解决方案更有效。

<强>更新

如果您想要两个表中的所有字段,请使用:

SELECT  *
FROM    service_type s
UNION ALL
SELECT  *
FROM    cust_service_type cs
WHERE   service_type NOT IN
        (
        SELECT  service_type
        FROM    service_type
        )