没有相交操作的SQL查询

时间:2018-04-21 01:47:14

标签: mysql sql intersection

查找大西洋地区曾购买过“TABLES”的所有客户以及购买的桌子数量(显示客户名称,购买no_of_tables)

我的sql不接受交叉操作

select c.Customer_name,count(m.Prod_id) from cust_dimen c,market_fact m,prod_dimen p where m.Cust_id=c.Cust_id and p.Prod_id=m.Prod_id and Region='ATLANTIC' group by m.prod_id
intersect
select c.Customer_name,count(m.Prod_id) from  cust_dimen c,market_fact m,prod_dimen p where m.Cust_id=c.Cust_id and p.Prod_id=m.Prod_id and p.Product_Sub_Category='TABlES' group by m.Prod_id;

可以用相交

修改

1 个答案:

答案 0 :(得分:0)

我没有看到intersect在这个查询中真正有用的地方。我会采用group by的方法。条件只是过滤条件:

select c.Customer_name, count(m.Prod_id)
from cust_dimen c join
     market_fact m
     on m.Cust_id = c.Cust_id join
     prod_dimen p 
     on p.Prod_id = m.Prod_id 
where c.Region = 'ATLANTIC' and p.Product_Sub_Category = 'TABlES'
group by c.Customer_name;

建议:从不FROM子句中使用逗号。 始终使用正确,明确,标准的JOIN语法。