是否可以将两个表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
结果。
我该如何解决这个问题?
是的,这是可能的。但是,您的代码不正确,因为您缺少语句本身SELECT
因为您的第一个选择将成为行集(运行时创建的表)。即您必须指定要获取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`
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`;