2011-04-03 57 views
2

我有股票和车,我想打一个查询,显示每个用户的库存车股票和车混合查询

例如,如果我有股票5个苹果,他有3个苹果的名单他购物车,然后当他寻找更多的苹果,他应该只看到2(注:按类型我组项目)

基本表的股票

id,type,price,seller,... 
1,apple,10,s1 
2,apple,10,s2 
3,orange,5,s1 
3,apple,10,s1 

假设他选择了2个苹果

为CA RT:

id,type,quantity 
1,apple,2 

所以我的查询将结账简单选择2个随机苹果(是的,这是它应该如何根据我的脚本)。

所以,当我想表明从库存产品,我再次做:

SELECT *,count(*) as counter FROM stock group by type 

我怎么能得到反(他有车)?

回答

3
select s.type, count(*) - (
    select count(*) 
    from cart c 
    where c.type=s.type 
    # and c.userid = X 
) as counter 
from stock s 
group by s.type 
having counter > 0 
+0

伟大的,但我怎么能丢弃量0行? – TDSii 2011-04-03 20:47:38

+1

在末尾有'计数器'0'删除任何没有股票剩余的行 – RichardTheKiwi 2011-04-03 20:55:07

+0

完美,我今天在mysql学到了几个动作,thx到你 – TDSii 2011-04-04 16:35:56