2017-03-18 89 views
0

我想使用mysql內部連接獲取第二個表的最後一個值。INNER JOIN只從第二個表中選擇一行

這是我的第一個表名 'tb_reg'

enter image description here

二表 'tb_stud_qulification'

enter image description here

我想要得到的 'candidate_no' 的最後日期,其中第一表'id'等於第二個表'candidate_no'。

我寫內部聯接這樣的代碼,但我得到的錯誤

SELECT reg.*, quli.course, quli.total_per 
FROM tb_reg AS reg 
INNER JOIN tb_stud_qulification AS quli ON reg.stage = '2' AND reg.id = quli.candidate_no AND 
ORDER BY quli.id 
LIMIT 1 

我希望得到的結果是這樣 enter image description here

+2

您的加入結束於「和」,所以這是無效的SQL –

+0

第二個表中沒有日期列。 –

回答

0

可以顯示:

`http://stackoverflow.com/questions/8821920/sql-sqlite-select-with-inner-join` 

例如:

SELECT doctors.doctor_id,doctors.doctor_name,visits.patient_name    
FROM doctors 
INNER JOIN visits   
ON doctors.doctor_id=visits.doctor_id 
WHERE doctors.degree='MD'; 
+0

沒有學位說明我想獲得'id'的最後資格(課程) – Rijo

0

我會寫這樣的(看不同的ON和WHERE子句)

SELECT reg.*, quli.course, quli.total_per 
FROM tb_reg AS reg 
INNER JOIN tb_stud_qulification AS quli ON reg.id = quli.candidate_no 
WHERE reg.stage = '2' 
ORDER BY quli.id 
LIMIT 1 

但除此之外,我沒有看到你tb_regstage場...

+0

在這裏,我只獲得1個值,我想獲得2行,因爲'id'與兩個'candidate_no'匹配嗎?如何獲得最後的候選人數值? – Rijo

+0

我想這還需要'GROUP BY quli.id'和NO'LIMIT' - 但那個'stage'呢? – Johannes