我在执行此sql时遇到问题。我需要获取结果并将其通过JSON发送到我的网页。
SELECT `produto`.`nome` `nome`, `estoque_movimento`.`data`, `estoque_movimento`.`qtd`, `estoque_movimento`.`motivo`, `marca`.`nome` `marca`, `tipo_produto`.`nome` `categoria`
FROM `estoque_movimento`
LEFT JOIN `produto` ON `produto`.`id` = `estoque_movimento`.`produto_id`
LEFT JOIN `tipo_produto` ON `tipo_produto`.`id` = `produto`.`tipo_id`
LEFT JOIN `marca` ON `marca`.`id` = `produto`.`marca_id`
WHERE `estoque_movimento`.`data` >= '2018-03-26 00:00:00'
AND `estoque_movimento`.`data` <= '2018-10-03 23:59:59'
ORDER BY `estoque_movimento`.`data` DESC
UNION
SELECT `produto`.`nome` `nome`, `pedido_produto`.`criado_em`, `pedido_produto`.`qtde`, CONCAT("Alocado no pedido n°: ", pedido_produto.produto_id), `marca`.`nome` `marca`, `tipo_produto`.`nome` `categoria`
FROM `pedido_produto`
LEFT JOIN `pedido` ON `pedido`.`id` = `pedido_produto`.`pedido_id`
LEFT JOIN `produto` ON `produto`.`id` = `pedido_produto`.`produto_id`
LEFT JOIN `tipo_produto` ON `tipo_produto`.`id` = `produto`.`tipo_id`
LEFT JOIN `marca` ON `marca`.`id` = `produto`.`marca_id`
WHERE `pedido`.`is_finalizado` = 0
GROUP BY `produto`.`nome`, `pedido_produto`.`produto_id`
我收到此错误:
#1221 - Incorrect usage of UNION and ORDER BY
答案 0 :(得分:1)
在不同的“选择”查询组周围使用括号(
)
。
尝试:
(
SELECT `produto`.`nome` `nome`, `estoque_movimento`.`data`, `estoque_movimento`.`qtd`, `estoque_movimento`.`motivo`, `marca`.`nome` `marca`, `tipo_produto`.`nome` `categoria`
FROM `estoque_movimento`
LEFT JOIN `produto` ON `produto`.`id` = `estoque_movimento`.`produto_id`
LEFT JOIN `tipo_produto` ON `tipo_produto`.`id` = `produto`.`tipo_id`
LEFT JOIN `marca` ON `marca`.`id` = `produto`.`marca_id`
WHERE `estoque_movimento`.`data` >= '2018-03-26 00:00:00'
AND `estoque_movimento`.`data` <= '2018-10-03 23:59:59'
ORDER BY `estoque_movimento`.`data` DESC
)
UNION
(
SELECT `produto`.`nome` `nome`, `pedido_produto`.`criado_em`, `pedido_produto`.`qtde`, CONCAT("Alocado no pedido n°: ", pedido_produto.produto_id), `marca`.`nome` `marca`, `tipo_produto`.`nome` `categoria`
FROM `pedido_produto`
LEFT JOIN `pedido` ON `pedido`.`id` = `pedido_produto`.`pedido_id`
LEFT JOIN `produto` ON `produto`.`id` = `pedido_produto`.`produto_id`
LEFT JOIN `tipo_produto` ON `tipo_produto`.`id` = `produto`.`tipo_id`
LEFT JOIN `marca` ON `marca`.`id` = `produto`.`marca_id`
WHERE `pedido`.`is_finalizado` = 0
GROUP BY `produto`.`nome`, `pedido_produto`.`produto_id`
)