这很难解释,所以我会添加表格,希望能抓住我打不好的东西。我有一个产品表,每个产品都有一个国家/地区id。我想获得每个国家/地区id的唯一产品的计数。但是,我想加入几个表,以确定是否应该计算sku。我有 prods 像这样的table|密钥| c | id | sku||
prods
r7xajy2e1#
-|--------|-------||1 | 1 | 公司||2 | 2 | 公司||3 | 3 | 公司||4 | 1 |定义||5 | 2 |定义|一 filter 表(在我的代码中,它是几个表的几个内部联接,但目标是生成这样的东西)|sku |想要| sku||-------|
filter
o2gm4chl2#
这是我查询的最终结果|c|#唯一| SKU的c|id#||--------|
hmtdttj43#
--|| 1 | 1 || 2 | 1 || 3 | 0 |这是我到目前为止拼凑出来的,但它让我的SKU总数减少了。
SELECT prods.c_id, COUNT(DISTINCT prods.SKU) FROM prods INNER JOIN filter ON filter.sku = prods.sku WHERE filter.want_sku = 1 GROUP BY prods.c_id
这只是得到不同SKU的最大值,并将其分配给每个不同的c#U id。不太清楚如何修复它。任何帮助/建议将不胜感激,谢谢!
8hhllhi24#
我想你想要一个 left join :
left join
SELECT p.c_id, COUNT(DISTINCT f.SKU) FROM prods p LEFT JOIN filter f ON f.sku = p.sku AND f.want_sku = 1 GROUP BY p.c_id;
注:我认为你不需要 COUNT(DISTINCT) 但你就是这么说的。
COUNT(DISTINCT)
4条答案
按热度按时间r7xajy2e1#
-|--------|-------|
|1 | 1 | 公司|
|2 | 2 | 公司|
|3 | 3 | 公司|
|4 | 1 |定义|
|5 | 2 |定义|
一
filter
表(在我的代码中,它是几个表的几个内部联接,但目标是生成这样的东西)|sku |想要| sku|
|-------|
o2gm4chl2#
这是我查询的最终结果
|c|#唯一| SKU的c|id#|
|--------|
hmtdttj43#
--|
| 1 | 1 |
| 2 | 1 |
| 3 | 0 |
这是我到目前为止拼凑出来的,但它让我的SKU总数减少了。
这只是得到不同SKU的最大值,并将其分配给每个不同的c#U id。不太清楚如何修复它。任何帮助/建议将不胜感激,谢谢!
8hhllhi24#
我想你想要一个
left join
:注:我认为你不需要
COUNT(DISTINCT)
但你就是这么说的。