我如何才能将所有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
答案 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。