显示订购多个商品的订单

时间:2016-11-24 13:27:16

标签: mysql

我试图在表格中显示订单包含多篇文章的条目:但它不像我尝试的那样工作。有人可以告诉我哪里错了吗?!

以下是我的尝试:

SELECT *
FROM TableX
WHERE (SELECT COUNT(Ordernumber) FROM TableX AS a WHERE a>1);

1 个答案:

答案 0 :(得分:0)

一个选项是使用子查询来标识包含多个文章的订单号,然后将此子查询加入到原始表中以获取这些匹配订单的完整记录。

SELECT t1.*
FROM TableX t1
INNER JOIN
(
    SELECT Ordernumber
    FROM TableX
    GROUP BY Ordernumber
    HAVING COUNT(*) > 1
) t2
    ON t1.Ordernumber = t2.Ordernumber

此查询假定给定订单中的所有文章都是唯一的。如果可能发生重复文章,并且您不会计算重复项,则可以使用以下HAVING子句:

HAVING COUNT(DISTINCT article) > 1

另一种选择:

SELECT *
FROM TableX
WHERE Ordernumber IN
(
    SELECT Ordernumber
    FROM TableX
    GROUP BY Ordernumber
    HAVING COUNT(*) > 1
)