从3个表中提取数据

时间:2015-11-14 10:20:43

标签: mysql database

我有3张表如下:

  

表1:产品

id_product [Primary Key],added_time.
     

表2:类别

id_category [Primary Key],Category_name.
     

表3:product_category

id_category,id_product  [Both Foreign Keys]

我想将数据拉为

产品添加到类别(最新产品added_time)时,此类别中的{p> Category_nameNo Of ProductsLast time

2 个答案:

答案 0 :(得分:1)

您可以使用此SQL

SELECT      Category.Category_name,
            Count(DISTINCT Product.id_product) AS num_products,
            Max(Product.added_time) last_added_time
FROM        Category
LEFT JOIN   product_category
       ON   product_category.id_category = Category.id_category
LEFT JOIN   Product
       ON   Product.id_product = product_category.id_product
GROUP BY    Category.Category_name;

请注意,使用LEFT JOIN,您肯定会列出所有类别,即使是那些没有产品的类别。如果您不想要这些,请将LEFT个关键字替换为INNER

另请注意,在标准SQL中,您需要GROUP BYSELECT列表中提及的任何列,除非它们已汇总,例如MAX或{{1 }}

答案 1 :(得分:0)

@"transform"

希望这有帮助。