SELECT查询从两个表中收集结果

时间:2015-02-02 12:11:16

标签: mysql select

我有一个简单的查询,可以从“贷款”中选择一本书的最新截止日期。表。

我使用以下查询;

SELECT duedate, no
FROM loan 
WHERE duedate =
  (SELECT duedate FROM loan ORDER BY duedate DESC LIMIT 1);

查询结果显示最新日期和“不”。拿这本书的人
我现在正在寻找一种方法来修改查询以显示该人的姓名。然而,该名称位于一个名为“学生”的不同表格中。但是没有'来自贷款'上述查询结果中的表格需要与“学生”中的人员姓名相匹配。表。

' no'结果将与“学生”中的姓名相匹配。表格为“不”。也是在学生的#39;与名称相同的行上的表。

如何修改我的查询以显示名称以及' no'并且' duedate'?

4 个答案:

答案 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列上创建索引。