mysql中如何用join代替union
我想将mysql中如何用join代替union,mysql,join,union,Mysql,Join,Union,我想将联合替换为联合。请告诉我需要做的更改。MySQL不支持完全连接,因此在MySQL中不可能做到这一点 在其他系统中,可以使用以下语法: select service_type from service_type as s union select service_type from cust_service_type as cs 或 对于支持连接的系统。。。使用 请注意,UNION比此解决方案效率更高 更新: 如果需要两个表中的所有字段,请使用以下命令: SELECT DISTINCT
联合
替换为联合
。请告诉我需要做的更改。MySQL
不支持完全连接
,因此在MySQL
中不可能做到这一点
在其他系统中,可以使用以下语法:
select service_type from service_type as s union select service_type
from cust_service_type as cs
或
对于支持连接的系统。。。使用
请注意,UNION
比此解决方案效率更高
更新:
如果需要两个表中的所有字段,请使用以下命令:
SELECT DISTINCT service_type
FROM service_type s
FULL JOIN
cust_service_type cs
USING (service_type)
它们并不等同。要使用
JOIN
,表之间必须存在某种关系,例如service\u id
。在联合中有什么不好的地方
?这两个表的结构相同,我需要第一个表中的所有数据,而第二个表中的所有数据我需要第一个表中不匹配的数据。
SELECT DISTINCT service_type
FROM service_type s
FULL JOIN
cust_service_type cs
USING (service_type)
SELECT *
FROM service_type s
UNION ALL
SELECT *
FROM cust_service_type cs
WHERE service_type NOT IN
(
SELECT service_type
FROM service_type
)