我有一个简单的查询,可以从“贷款”中选择一本书的最新截止日期。表。
我使用以下查询;
SELECT duedate, no
FROM loan
WHERE duedate =
(SELECT duedate FROM loan ORDER BY duedate DESC LIMIT 1);
查询结果显示最新日期和“不”。拿这本书的人
我现在正在寻找一种方法来修改查询以显示该人的姓名。然而,该名称位于一个名为“学生”的不同表格中。但是没有'来自贷款'上述查询结果中的表格需要与“学生”中的人员姓名相匹配。表。
' no'结果将与“学生”中的姓名相匹配。表格为“不”。也是在学生的#39;与名称相同的行上的表。
如何修改我的查询以显示名称以及' no'并且' duedate'?
答案 0 :(得分:2)
SELECT loan.duedate, loan.no, student.name FROM loan
INNER JOIN student ON loan.no = student.no
ORDER BY loan.duedate DESC LIMIT 1
试试这个..! Gud运气:))
答案 1 :(得分:1)
使用加入;
SELECT loan.duedate, loan.no, student.name FROM loan
INNER JOIN student ON loan.no = student.name
详细了解MySQL JOIN
我不明白为什么你在已经的SQL查询中使用了子查询。
它也可以完成,
SELECT duedate, no FROM loan ORDER BY duedate DESC LIMIT 1
答案 2 :(得分:1)
使用join组合不同表的列。您需要在no
子句中定义匹配列(在您的情况下为on
,在大多数情况下这是一个ID)。
SELECT loan.duedate, loan.no, student.name
FROM loan
left JOIN student on loan.on = student.on
答案 3 :(得分:1)
您需要使用join
。此解决方案假定学生姓名列名为" name"。
SELECT loan.duedate, loan.no, students.name FROM loan
LEFT JOIN students ON loan.no=students.no
ORDER BY loan.duedate;
请参阅http://www.w3schools.com/sql/sql_join.asp
出于性能目的,您很可能希望在两个表中的no
列上创建索引。