【发布时间】:2018-11-20 10:15:57
【问题描述】:
我有这个查询(有效):
SELECT NOME, AMPM, GROUP_CONCAT(CONCAT(PERITI,' (',QTY,')') SEPARATOR ', ')periti FROM
(SELECT zone.nome, DATE_FORMAT(CONCAT(appuntamenti.data_inizio,' ',appuntamenti.ora_inizio), '%p') AMPM,
periti.sigla PERITI,COUNT(*) QTY FROM appuntamenti
inner join periti on appuntamenti.id_perito = periti.id
inner join zone on appuntamenti.id_zona = zone.id
where appuntamenti.data_inizio='2018-11-20' and appuntamenti.id_zona = '77'
GROUP BY AMPM, PERITI) AS GIORNO1AM
union
SELECT NOME, AMPM, GROUP_CONCAT(CONCAT(PERITI,' (',QTY,')') SEPARATOR ', ')periti FROM
(SELECT zone.nome, DATE_FORMAT(CONCAT(appuntamenti.data_inizio,' ',appuntamenti.ora_inizio), '%p') AMPM,
periti.sigla PERITI,COUNT(*) QTY FROM appuntamenti
inner join periti on appuntamenti.id_perito = periti.id
inner join zone on appuntamenti.id_zona = zone.id
where appuntamenti.data_inizio='2018-11-20' and appuntamenti.id_zona = '78'
GROUP BY AMPM, PERITI) AS GIORNO1AM
union
SELECT NOME, AMPM, GROUP_CONCAT(CONCAT(PERITI,' (',QTY,')') SEPARATOR ', ')periti FROM
(SELECT zone.nome, DATE_FORMAT(CONCAT(appuntamenti.data_inizio,' ',appuntamenti.ora_inizio), '%p') AMPM,
periti.sigla PERITI,COUNT(*) QTY FROM appuntamenti
inner join periti on appuntamenti.id_perito = periti.id
inner join zone on appuntamenti.id_zona = zone.id
where appuntamenti.data_inizio='2018-11-20' and appuntamenti.id_zona = '79'
GROUP BY AMPM, PERITI) AS GIORNO1AM
order by NOME ASC
我想从查询中删除所有“联合”,并在嵌套的 where 子句中使用 zone table 中的 id 列。
类似:
SELECT p.id ,(SELECT NOME, AMPM, GROUP_CONCAT(CONCAT(PERITI,' (',QTY,')') SEPARATOR ', ')periti FROM
(SELECT zone.nome, DATE_FORMAT(CONCAT(appuntamenti.data_inizio,' ',appuntamenti.ora_inizio), '%p') AMPM,
periti.sigla PERITI,COUNT(*) QTY FROM appuntamenti
inner join periti on appuntamenti.id_perito = periti.id
inner join zone on appuntamenti.id_zona = zone.id
where appuntamenti.data_inizio='2018-11-20' and appuntamenti.id_zona = p.id
GROUP BY AMPM, PERITI) AS GIORNO1AM) AS RISULTATO
FROM zone p
但是......当我尝试这个改变时,我得到了这个错误:
1054 - “where 子句”中的未知列“p.id”
请帮帮我:)
【问题讨论】:
-
您不能引用比一层更深的外层列,并且您尝试从级别 2 调用外层 id。您需要重写查询
-
您能告诉我正确的方法吗?提前致谢
标签: mysql nested-queries