我想问一个与SQL有关的问题。
我有那些带汽车的桌子和汽车的销售,我想找到股票。要做到这一点,我必须计算汽车VID中有多少价值并出现在销售VID上
我尝试了以下查询
从汽车,销售地点选择不同的计数(*)Cars.VID!= Sales.VID;
我的结果是63而不是3,这是期望的结果。有没有人有任何建议?
答案 0 :(得分:0)
如果我正确阅读了您的要求,您希望从VID
表中获取 not 出现在Cars
表中的每个不同的Sales
(即尚未售出)。对于这种情况,我会使用WHERE VID NOT IN ...
:
SELECT COUNT(DISTINCT VID)
FROM Cars
WHERE VID NOT IN (SELECT DISTINCT VID FROM Sales)
答案 1 :(得分:0)
未经测试,但没有子选择。对于较大的汽车和销售清单以及两个表中的VID索引,可能会更快。
SELECT COUNT(c.VID) 来自汽车c LEFT JOIN Sales s ON s.VID = c.VID WHERE s.VID为空
我的问题是:如果每辆车都是独一无二的,为什么要制作单独的销售表。您可以将销售列添加到Cars表中吗?