2017-03-18 132 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

相关问题