咨询sql连接表

时间:2015-03-22 13:31:26

标签: mysql sql

我尝试在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;和其他观点相同,但过滤其他类别,例如牛仔裤。

我需要这个视图??或者我需要其他视图??

我不知道我将如何进行查询

谢谢

1 个答案:

答案 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;