2015-03-22 5 views
-1

Прошу проконсультироваться в sql, но я не знаю, как это сделать.проконсультироваться с sql join tables

У меня есть столы магазинов товаров.

И я хочу таблицу подобную этой:

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

Во-первых, вам необходимо сгенерировать все строки с помощью перекрестного соединения. Затем введите информацию о клиенте.

Я думаю, это выглядит следующим образом:

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;