【发布时间】:2022-07-22 17:07:07
【问题描述】:
我正在多个多对多关系表之间创建一个查询,以便将它们的值链接在一起。我的问题是,我似乎无法找到一种方法来按此查询中“服务”子表中的“服务”值进行分组:
SELECT
GROUP_CONCAT(containers.container_id ORDER BY containers.container_id DESC) AS container_id,
GROUP_CONCAT(containers.container_serial ORDER BY containers.container_id DESC) AS container_serial,
GROUP_CONCAT(containers.container_index ORDER BY containers.container_id DESC) AS container_index,
invoices.*,
statuses.status,
clients.client,
GROUP_CONCAT(services.service_id ORDER BY containers.container_id DESC) AS service_id,
GROUP_CONCAT(services.service ORDER BY containers.container_id DESC) AS service
FROM containers_invoices
LEFT JOIN containers
ON containers_invoices.container_id = containers.container_id
LEFT JOIN invoices
ON containers_invoices.invoice_id = invoices.invoice_id
LEFT JOIN statuses
ON invoices.status_id = statuses.status_id
LEFT JOIN clients
ON invoices.client_id = clients.client_id
LEFT JOIN invoices_services
ON invoices.invoice_id = invoices_services.invoice_id
LEFT JOIN services
ON invoices_services.service_id = services.service_id
GROUP BY containers_invoices.invoice_id
ORDER BY invoice_id DESC
现在我的结果看起来像这样:
C09-65475u76u76, C08-dfsgreg345g3 - 114 - ? - 服务,服务 - 1000 - 已发送
该服务应该只显示一次,并且不会像我拥有的容器编号那样循环多次。我知道我很接近,但我似乎无法缩小解决方案的差距。感谢您的帮助!
【问题讨论】: