php - MySQL子查询拉取多个结果

标签 php mysql subquery group-concat

我有不同'manufacturer'字段的重复记录。我正在尝试 GROUP BY i.stocknumber 但这只会删除一条记录,而不会收集其他制造商的结果。

某些记录具有 NULL 制造商字段,我尝试在子查询中使用 GROUP_CONCAT 来消除“制造商”的不同结果。

这是我当前的查询:

SELECT i.id,i.stocknumber,m.manufacturer
FROM inventory i
INNER JOIN makes mk on i.make = mk.id 
INNER JOIN models md on i.model = md.id 
INNER JOIN classes cl on i.class = cl.id 
LEFT JOIN ( 
            SELECT idm.id, idm.inventory_id, dm.manufacturer AS 'manufacturer' 
            FROM display_manufacturers dm 
            INNER JOIN inventory_display_manufacturers idm ON dm.id = idm.display_manufacturer_id 
           ) m ON i.id = m.inventory_id 
-- GROUP BY i.stocknumber
ORDER BY i.stocknumber

我得到的结果是:

enter image description here

对于通过连接manufacturer字段对重复记录进行分组有什么想法吗?

(注意:我已经在子查询上尝试了GROUP_CONCAT)

期望结果:

id   | stocknumber | manufacturer
----------------------------------
946  | 011A        | NULL
907  | 1001        | Sports Coach, Coachmen
1032 | 1001x       | Sports Coach

等等......

最佳答案

你在找这个吗?

SELECT i.id, i.stocknumber, group_concat(distinct m.manufacturer) as manufacturers
. . .
GROUP BY i.stocknumber

编辑:

此版本明确使用您的查询作为子查询。它不应该将所有制造商放在同一行:

select stocknumber, group_concat(distinct manufacturer) as manufacturers
from (SELECT i.id,i.stocknumber,m.manufacturer
      FROM inventory i
      INNER JOIN makes mk on i.make = mk.id 
      INNER JOIN models md on i.model = md.id 
      INNER JOIN classes cl on i.class = cl.id 
      LEFT JOIN ( 
            SELECT idm.id, idm.inventory_id, dm.manufacturer AS 'manufacturer' 
            FROM display_manufacturers dm 
            INNER JOIN inventory_display_manufacturers idm ON dm.id = idm.display_manufacturer_id 
           ) m ON i.id = m.inventory_id
     ) t
GROUP BY stocknumber ;

关于php - MySQL子查询拉取多个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24810743/

相关文章:

mysql - 如何正确加入这 4 个表格 View

mysql - Duplicate Column Name 错误 MySQL 多个子查询

php - 为什么总是使用 "while"循环来迭代 mysql_fecth_array() 函数结果?

php mp3字符串错误

php - MySQL 错误 : 'Unkown column' tablename. 列名在 'on clause'

mysql复杂分组按学​​生分

php - 使用 Doctrine DBAL 创建 View 和存储过程

php - 使用 MySQL 的原则

mysql - Ejabberd 如何管理集群的数据库?

mysql - SQL 创建查询并重定向到文件