[英]MySQL query not giving expected results
我是MySQL的新手,正在嘗試解決項目的問題。
我有三個表:汽車,銷售和客戶。 汽車的VID為pk,並具有其他一些屬性,例如型號和價格。 客戶的CID為pk,並具有一些屬性。 sales具有(VID,CID)作為pk,具有銷售價格和銷售日期作為屬性。
問題是:“ 2014年銷售最頻繁的汽車是什么型號”?
這是我的查詢
Select Model
From Cars,Sales
Where Cars.VID=Sales.VID
Group By Cars.VID
Having MAX( (Select count(*)
From Cars,Sales Where Cars.VID=Sales.VID AND SellDate Between '2014-01-01' And '2014-12-30'));
我仍然會獲得銷售表中存在的所有模型,能告訴我哪里錯了嗎?
第一: 切勿在FROM
子句中使用逗號。 始終使用帶有適當的ON
子句的顯式,正確,標准的JOIN
語法。
如果只需要一個這樣的模型,最簡單的方法是ORDER BY
和LIMIT
:
Select c.Model
From Cars c JOIN
Sales s
on c.VID = s.VID
where s.SellDate >= '2014-01-01' And
s.SellDate < '2015-01-01'
Group By c.Model
Order by count(*) desc
limit 1;
補充筆記:
GROUP BY
中的列應該與SELECT
未聚合的列匹配,幾乎總是如此 。 <
between
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.