我需要从联合查询中选择一些特定的sum到3个表,这些表应该是
列字段中可用,但我看到一个错误代码: 1054。'where子句‘中的未知列' M.id’它看起来像联合子查询中的M.id是不可见的。我如何使它工作,没有功能,只有通过查询。
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发布于 2015-04-29 08:57:21
如果你不提供更多关于你到底想要什么的信息,就很难回答。
但是,首先在您的子查询中进行联接,如下所示:
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然后,您将能够将其加入到外部查询中,类似于
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.IDhttps://stackoverflow.com/questions/29937699
复制相似问题