【问题标题】:Php MySQL Many to Many to Many condition Group Byphp MySQL 多对多条件 Group By
【发布时间】: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 - 已发送

该服务应该只显示一次,并且不会像我拥有的​​容器编号那样循环多次。我知道我很接近,但我似乎无法缩小解决方案的差距。感谢您的帮助!

【问题讨论】:

    标签: php mysql group


    【解决方案1】:

    您正在按发票分组:

    GROUP BY containers_invoices.invoice_id 
    

    你应该根据我的理解按服务分组

    GROUP BY services.service_id 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-06
      • 2012-10-07
      • 1970-01-01
      • 1970-01-01
      • 2020-12-29
      • 2014-02-05
      • 2015-09-22
      • 1970-01-01
      相关资源
      最近更新 更多