如何将分组ID显示为具有各自值的列表?

时间:2018-02-15 09:42:19

标签: sql joomla phpmyadmin virtuemart

我如何才能将所有ID分组,而是从头到尾列出;将它们各自的值放在它们旁边的列中?

它应该显示ID 1及其值,ID 2及其值,而不是对其进行分组。即使ID的值相同。我尝试删除GROUP_CONCAT,但之后每个customfield_value只显示一个ID?

SELECT GROUP_CONCAT(virtuemart_product_id), customfield_value, COUNT(*) c
FROM jos_virtuemart_product_customfields
WHERE virtuemart_custom_id = 6
GROUP BY customfield_value
HAVING c > 1

它目前正在运行,但是将ID分组并用逗号分隔它们。应该只显示为普通的表/列表格式。

目前它显示如下(你可以看到,它是所有相同的ICOS号码,但ID不同。我只需要显示ICOS NUMBER为“重复”的值):

   ID    ICOS  Count
1,2,3  775896      3

它应该显示如下:

   ID    ICOS  Count
    1  775896      1
    2  775896      1
    3  775896      1

1 个答案:

答案 0 :(得分:1)

customfield_value不唯一的所有行:

-- Assuming MySQL
SELECT virtuemart_product_id, customfield_value
   , COUNT(*) c -- maybe not needed
FROM jos_virtuemart_product_customfields
WHERE virtuemart_custom_id = 6
  AND customfield_value IN
 ( SELECT customfield_value
   FROM jos_virtuemart_product_customfields
   WHERE virtuemart_custom_id = 6
   GROUP BY customfield_value
   HAVING COUNT(*) > 1 -- more than one row exists
 ) 
GROUP BY virtuemart_product_id, customfield_value -- maybe not needed

如果virtuemart_product_id是唯一的,则您不需要外部计数/组,因为它始终为1。