【发布时间】:2021-10-15 17:47:18
【问题描述】:
我的任务是获取产品信息,例如最高销量、日期和品牌。但是,产品表中没有字段 Brands。我有两个单独的产品和品牌表,此外我还有另一个 product_sales 表,它基本上是产品销售的主表,但主表对品牌一无所知。
我想我必须以某种方式连接两个基本表,然后通过产品 ID 将它们链接到主表。 目前,我认为我必须使用包含品牌信息的两张表。
品牌有 {id, brandId, brandname, total }
BrandsProducts 有 {id, brandid, productId }
我的查询:
SELECT
b.brandid,
b.brandname,
p.productid
FROM pgcdonbrands b, pgcdonbrandsproducts p
WHERE b.brandid = p.brandid
我相信这会返回正确的结果、品牌名称和 ID,以及哪个产品 ID 与该品牌相关。我现在的问题是,我该如何继续在我的 Product Sales 表的主要查询中包含这个。最终结果应该是产品名称和品牌名称。
【问题讨论】:
-
嗨@iivo 相同的productId 会在productSales 表中包含多次吗?
-
是的,我相信是的。因为即使在同一产品上也会将销售添加到 productSales 中。
-
因此您可以通过使用 INNER JOIN 而不是逗号来使用上层查询作为子查询,并将 WHERE 子句替换为 ON。
-
我想我明白了.. 看起来怎么样?你介意写一些伪代码吗?