MySQL JOIN 的结果 UNION
Posted
技术标签:
【中文标题】MySQL JOIN 的结果 UNION【英文标题】:MySQL JOIN the result of UNION 【发布时间】:2013-10-07 06:59:21 【问题描述】:是否可以将两个表的UNION
的结果与第三个表连接起来?像这样的:
(SELECT DISTINCT `Fund_ID`, `Fund_Name` FROM `admin`
UNION
SELECT `Fund_ID`,`Fund_Name` FROM `admin_custom` WHERE `admin_custom`.`user_id` = 361) a
LEFT JOIN `qt1`
ON `qt1`.`Fund ID` = a.`Fund_ID`
但此代码不起作用。我可以在UNION
之前将JOIN
移动到每个SELECT
查询中,但宁愿尝试JOIN
与UNION
结果。
我该如何解决这个问题?
【问题讨论】:
【参考方案1】:是的,这是可能的。但是,您的代码不正确,因为您缺少 SELECT
语句本身,因为您的第一个选择变成了行集(运行时创建的表)。 IE。您必须指定 SELECT
运算符和要获取的字段。最简单的情况:
SELECT
a.*
FROM
(SELECT DISTINCT `Fund_ID`, `Fund_Name` FROM `admin`
UNION
SELECT `Fund_ID`,`Fund_Name` FROM `admin_custom` WHERE `admin_custom`.`user_id` = 361) AS a
LEFT JOIN `qt1`
ON `qt1`.`Fund ID` = a.`Fund_ID`
【讨论】:
【参考方案2】:SELECT * FROM
(SELECT DISTINCT `Fund_ID`, `Fund_Name` FROM `admin`
UNION
SELECT `Fund_ID`,`Fund_Name` FROM `admin_custom` WHERE `admin_custom`.`user_id` = 361) a
LEFT JOIN `qt1`
ON `qt1`.`Fund ID` = a.`Fund_ID`;
【讨论】:
以上是关于MySQL JOIN 的结果 UNION的主要内容,如果未能解决你的问题,请参考以下文章
mysql的unionleft join right join inner join和视图学习
Mysql查询与Union All和Join for League表
mysql数据库多个表union all查询并排序的结果为啥错误