mysql - mysql中如何用join代替union

标签 mysql join union

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

我想用 JOINS 替换 UNION。请让我知道需要进行的更改。

最佳答案

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
        )

关于mysql - mysql中如何用join代替union,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10909561/

相关文章:

MySQL 查询从两个表中接收随机组合

mysql - SQL查询: How to use sub-query or AVG function to find number of days between a new entry?

php - 我可以计算每个 MySQL Select/Union 有多少结果吗

scala - Apache Spark RDD 的 union 和 zipPartitions 有什么区别?

mysql - Django 与 MySQL : Invalid utf8 character string: '800363' how to fix it?

mysql - 从一个表获取数据并统计另一表的匹配记录

Java Spring : What is best way to do a mysql query using an IN clause using JdbcTemplates?

union - 两种语言的交集是什么?

php - Yii 使用用户身份对象分配外键值

javascript - 如何相邻打印 Fpdf MultiCell