2015-02-23 72 views
-1

我試圖找到航模737 的分年我得到當年列SQL JOIN

SELECT m.name 
    , m.n_number 
    , m.mfr_mdl_code 
    , MIN(m.year_mfr) min_year 
    , a.model 
    , a.code 
    FROM master m 
    JOIN acftref a 
    ON m.mfr_mdl_code = a.code 
WHERE a.model = 737 
ORDER 
    BY m.year_mfr IS NOT NULL 
LIMIT 10; 
+1

你有沒有試過把你的「不爲空」條件放在哪裏?因爲我認爲它不會成爲ORDER子句的一部分。 – durbnpoisn 2015-02-23 17:04:16

+0

'where acftref.model = 737 && acftref.year_mfr is not null order by master.year_mfr limit 10' – Cyclonecode 2015-02-23 17:04:28

+0

這似乎是GROUPWISE MAX問題的一個版本,它是MySQL標籤下最常遇到的單個問題。但是如果在回顧了類似的問題之後,你仍然在努力,請考慮遵循以下簡單的兩步式操作:1.如果您還沒有這樣做,請提供適當的DDL(和/或sqlfiddle),以便我們可以更容易地複製問題。 2.如果您尚未這樣做,請提供與步驟1中提供的信息相對應的所需結果集。 – Strawberry 2015-02-23 17:17:04

回答

0

空值你缺少你的日期字段限制不包括空值。請嘗試以下操作:

select master.name 
,master.n_number 
,master.mfr_mdl_code 
,min(master.year_mfr) as min_year 
,acftref.model 
,acftref.code 
from master 
join acftref on master.mfr_mdl_code=acftref.code 
where acftref.model=737 
and master.year_mfr is not null 
order by master.year_mfr 
limit 10; 
+0

我認爲除此之外還有更多! – Strawberry 2015-02-23 17:12:34

+0

我試着添加master.year_mfr不爲null的地方。 – 2015-02-23 17:27:30

+0

我也嘗試拿出MIN,只是通過master.year_mfr desc – 2015-02-23 17:29:46