我有这个问题(工作):
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
我想从查询中删除所有的“union”,并在嵌套的where子句中使用zone表中的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条答案
按热度按时间qfe3c7zg1#
我是否正确地认识到,除了appuntamenti.id\u zona之外,union的所有元素都是相同的?如果是这样的话,这难道不管用吗:
ogsagwnx2#
一般来说,要检查子查询是否工作,它应该可以自己运行。
因此,在您的情况下,此查询应该是成功的:
从上面的查询中,没有名为
p
.我不确定您想要获得什么样的结果,使用sql fiddle会有所帮助:)
但是假设要将子查询连接到外部表,则需要一个内部联接