仅选择在同一表

时间:2018-03-16 05:14:30

标签: php mysql sql

我只有那些在同一个表中有多行的行。例如,见下图。 enter image description here

在上图中,您可以看到2个突出显示的列,一个用于useid(u_id),第二个列用于产品ID(product_id)。

因此,您可以看到7的用户ID有多个产品,如(78,40,44,45,53),用户ID 9有多个产品,如(79,75,79),如用户ID 40有多个产品。

所以如果特定用户拥有多个产品,那么它会在产品名称列中显示“多个产品”而不是显示所有产品名称。 enter image description here

上面的图片显示所有产品,但如果特定用户有多个产品,我需要显示“多个产品”消息而不是所有产品

我使用了以下查询但未获得我想要的结果。

SELECT *
FROM orderlist
WHERE product_id IN (
    SELECT product_id
    FROM orderlist
    GROUP BY product_id
    HAVING COUNT(*) > 1
)

1 个答案:

答案 0 :(得分:0)

您可以在汇总后执行JOINS

SELECT *,
       CASE WHEN c.Counts > 1 THEN 'Multi' ELSE o.ProductName END ProductName 
FROM 
(
     SELECT product_id, COUNT(*) Counts
     FROM orderlist
     GROUP BY product_id
)c INNER JOIN orderlist o ON o.product_id = c.product_id