【发布时间】:2015-04-29 08:00:22
【问题描述】:
我需要从联合查询中选择一些特定的总和到 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
【问题讨论】:
-
属于联合的每个查询都需要工作,例如
SELECT count(*) as cp FROM T1 as o where o.st = 4 and o.LId = m.Id所以您需要将所需的连接和列添加到其中的每一个中 -
@IanKenney 您能否举个代码示例。我如何将它与 TM 表连接起来
-
当然 - 发布足够多的架构以显示 T1、T2 和 T3 与 TM TME 和 TP 的关系,同时显示您想要的输出示例
-
@IanKenney 我希望查询中的列可以很好地查看关系,并且输出的不仅仅是 TM 表中的列,我需要子查询的总和,但我不知道如何链接
标签: mysql