【问题标题】:MySQL JOIN the result of UNIONMySQL JOIN 的结果 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 查询中,但宁愿尝试JOINUNION 结果。

我该如何解决这个问题?

【问题讨论】:

    标签: mysql sql 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`;
      

      【讨论】:

        猜你喜欢
        • 2016-10-21
        • 2018-02-28
        • 2013-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-07
        • 2021-11-09
        • 1970-01-01
        相关资源
        最近更新 更多