0

使用Chinook 测试数据库,我编写了这个 SQL 语句来显示两个特定客户订购的所有曲目:

SELECT inv.BillingCity,cus.LastName,tra.Name
        FROM invoice AS inv
        JOIN customer AS cus ON inv.CustomerId=cus.CustomerId
        JOIN invoiceline inl ON inv.InvoiceId=inl.InvoiceId
        JOIN track tra ON tra.TrackId=inl.TrackId
        WHERE cus.LastName IN ('Schneider','Schröder')
        ORDER BY inv.BillingCity,cus.LastName,tra.Name

我看到有一个轨道被一位客户订购了两次:

在此处输入图像描述

我将如何编写一个 SQL 语句来查找这样的双打,即“返回一个客户多次订购的所有曲目”?

4

1 回答 1

2

尝试这个:

SELECT cus.CustomerId,tra.Name,COUNT(cus.CustomerId) AS tot
       FROM invoice AS inv
       JOIN customer AS cus ON inv.CustomerId=cus.CustomerId
       JOIN invoiceline inl ON inv.InvoiceId=inl.InvoiceId
       JOIN track tra ON tra.TrackId=inl.TrackId
       GROUP BY cus.CustomerId,tra.Name
       HAVING tot > 1
于 2012-07-07T05:24:39.293 回答