1

top5 と内部結合がある SQL ステートメントを作成するにはどうすればよいですか?

現在、これは私が持っているものです:

$query = "SELECT OrderItem.ProductCode , Product.ProductName, 
                 count(OrderItem.OrderID) as total_orders 
          FROM `OrderItem` 
          GROUP BY ProductCode 
          ORDER BY total_orders DESC LIMIT 5 
          INNER JOIN Product ON Product.ProductCode = OrderItem.ProductCode";

しかし、それは機能していません。

テーブル: 製品テーブルには列があります:

  ProductCode, ProductName, Cat, Qty, CostPr, RetailPr, VendorID

OrderItem テーブルには次の列があります。

  OrderID, ProductCode, UnitPr, Qty,TotalPr

私の目的は、送信された注文の上位 5 製品の製品コードと製品名を表示することです。助けてください。ありがとう。

4

2 に答える 2

1

AJOINFROM句の一部であり、あなたの前に来る必要がありますGROUP BY:

SELECT 
    OrderItem.ProductCode, 
    Product.ProductName, 
    count(OrderItem.OrderID) as total_orders 
FROM 
    OrderItem 
    INNER JOIN Product 
        ON Product.ProductCode = OrderItem.ProductCode
GROUP BY OrderItem.ProductCode, Product.ProductName 
ORDER BY total_orders DESC LIMIT 5 
于 2012-07-25T15:55:10.103 に答える
0
select ol.ProductCode, ol.total_orders, p.ProductName
from (
    select ProductCode, count(OrderID) as total_orders
    from OrderItem
    group by ProductCode
    order by total_orders desc LIMIT 5
) ol
inner join Product p on p.ProductCode = ol.ProductCode
于 2012-07-25T15:56:05.000 に答える