mysql:尝试选择未售出的项目

mysql:尝试选择未售出的项目,mysql,Mysql,一个新手问题,可能和Mysql一样有逻辑性 我有一个针对各种产品的报价表,如果报价导致订单,则有订单日期: quoteID product sellPrice orderDate 1 apple 1.00 5-29-1983 2 pear 1.35 null 3 pear 1.25 6-18-198

一个新手问题,可能和Mysql一样有逻辑性

我有一个针对各种产品的报价表,如果报价导致订单,则有订单日期:

quoteID     product    sellPrice       orderDate
  1           apple       1.00          5-29-1983  
  2           pear        1.35            null
  3           pear        1.25          6-18-1983
  4           banana      1.25            null
我在努力推销从未售出的产品。我知道我可以用count(不同的产品)来计算每一项被引用的次数,但这给了我
apple1;梨2;香蕉1
。我想要的是香蕉0,或者更有用的苹果1,1;梨2,1;香蕉1,0,显示报价与订单的比率


在此方面的任何帮助都将不胜感激。提前谢谢

您应该使用子选择,而不是在

 select product from my_table 
 where product not in (select product from my_table where orderDate is not null)

谢谢你的回答和评论。正如Drew所预测的那样,
“不在”
的建议答案不起作用。我最终加入了一个
的“空订单表”
和一个
的“订单表”
,看起来效果不错(见下文)。欢迎对此方法或详细信息发表意见

结果: “产品”、“订单日期”、“产品”、“订单日期”、“订单数” “香蕉”,空,空,空,空

查询:

SELECT * FROM 
(select product, orderdate  from quotes 
where orderdate IS NULL
group by product) as t1
LEFT JOIN
(select product, orderdate, count(product) 'countOrders' from quotes 
where orderdate is NOT NULL
group by product) as t2
on t1.product=t2.product
where countOrders is NULL

如果in子句导致product为null,该怎么办。我们几天前谈到了这一点。这些是不安全的。所有产品的订单日期都为空。。所有产品均未售出..您是否确定在他的实际表中是这样的,或者您是否假设
从my_表中选择产品,其中orderDate不为null
不会包含
产品的
null
?尽量不要在
中使用
而不是
并从过去中学习。我正在查看问题提供的示例。。并提出了我的答案我不习惯在塞维利亚。。。。如果你不喜欢我的,我永远不会有问题。。如果你喜欢自己的方式,就发布你的答案。指出
而不是
的危险是你的责任。如果你用它,不用说,我会的。彻底地。它又来了,也许你会读它并修补它。除非您对数据非常了解,并且了解最新情况,否则不要在
中使用