首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >联合查询中的MySql链接表

联合查询中的MySql链接表
EN

Stack Overflow用户
提问于 2015-04-29 08:00:22
回答 1查看 61关注 0票数 0

我需要从联合查询中选择一些特定的sum到3个表,这些表应该是

列字段中可用,但我看到一个错误代码: 1054。'where子句‘中的未知列' M.id’它看起来像联合子查询中的M.id是不可见的。我如何使它工作,没有功能,只有通过查询。

代码语言:javascript
复制
SELECT
    m.COL1,
    m.COL2,
    p.Id,
    (
        SELECT 
            sum(cp) 
        FROM (
                SELECT 
                     count(*) as cp 
                FROM 
                     T1 as o
                WHERE 
                     o.st = 4 
                     AND o.LId = m.Id

                UNION ALL

                SELECT 
                     count(*) as cp 
                FROM 
                     T2 as oh
                WHERE 
                     oh.st = 0 
                     AND oh.LId = m.Id

                UNION ALL

                SELECT 
                    count(*) as cp 
                FROM 
                    T3 as os
                WHERE
                    os.st = 4 
                    AND os.LId = m.Id

            ) as PP 
        ) as IsFB

    FROM 
        TM as m
        JOIN TME as mx ON m.Id = mx.MId
        JOIN TP as p ON m.CID = p.PID
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-29 08:57:21

如果你不提供更多关于你到底想要什么的信息,就很难回答。

但是,首先在您的子查询中进行联接,如下所示:

代码语言:javascript
复制
            SELECT 
                 TM.COL1, TM.COL2, TM.id, count(*) as cp 
            FROM 
                 T1
            JOIN 
                 TM
            ON   
                 T1.LId = TM.id
            GROUP BY 
                 TM.COL1, TM.COL2, TM.id

然后,您将能够将其加入到外部查询中,类似于

代码语言:javascript
复制
SELECT
    UU.COL1,
    UU.COL2,
    TP.ID,
    sum(UU.cp)
FROM (
  ** union query goes here
) UU
JOIN TP ON UU.id = TP.PID
GROUP BY 
  UU.COL1, UU.COL2, TP.ID
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29937699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档