我尝试在sql中进行此咨询,但我不知道如何。
我有一个产品商店的桌子。
我想要一张类似的表:
tshirt | jeans | number sells
---------------------------------------
tshirt1 | jean1 | 5
tshirt1 | jean2 | 4
tshirt1 | jean3 | 0
.............................
tshirt1 | jeanN | 3
我在其他表中购买此信息。 此表包含用户代码和一行产品购买行。
codeUser product buy
-------------------------
1 tshirt1
1 jeans1
2 jeans2
...............
我想知道很多人购买tshirt1并购买一种类别2的产品。
我有一个按产品类别筛选的视图,例如tshirt;和其他观点相同,但过滤其他类别,例如牛仔裤。
我需要这个视图??或者我需要其他视图??
我不知道我将如何进行查询
谢谢
答案 0 :(得分:0)
首先,您需要使用交叉连接生成所有行。然后引入客户信息。
我认为它看起来像这样:
select t.product as tshirt, j.product as jeans,
count(distinct bj.codeUser)
from (select distinct product from buys where product like 'tshirt%') t cross join
(select distinct product from buys where product like 'jeans%') j left join
buys bt
on bt.product = t.product left join
buys bj
on bj.product = j.product and
bj.codeuser = bt.codeuser
group by t.product as tshirt, j.product;