2013-03-29 58 views
0

我對複雜查詢有困難。有一個表分類和產品。我需要展示每個類別的4個產品。我怎樣才能做到這一點?複雜查詢 - MySql(類別x產品)

我的結構:Category.id,Category.name和Product.id,Product.category_id。

SQL:

SELECT Product.id, Product.name, Product.img, Category.name FROM categories AS Category 
INNER JOIN (SELECT Product.id, Product.name, Product.img, Product.category_id FROM products AS Product) AS Product ON 
Product.category_id = Category.id; 

我應該把對產品的限制?

謝謝。

Felipe Marques

回答

0

這在MySQL中是痛苦的(在我看來)。這是一個帶相關子查詢的一個版本:

SELECT p.id, p.name, p.img, c.name 
FROM categories c INNER JOIN 
    (SELECT p.id, p.name, p.img, p.category_id, 
      (select count(*) from products p2 where p2.category_id = p.category_id and p2.id <= p.id 
      ) as seqnum 
     FROM products p 
    ) p 
    ON Product.category_id = Category.id 
where seqnum <= 4 

它使用相關子查詢來計算產品的數量誰的產品ID小於或等於給定的產品。這會創建一個序列號,您可以在其中選擇前四個。

+0

好帥哥!謝謝你,非常有幫助。 –