Mysql 选择“查询”以从两个表中收集结果

Mysql 选择“查询”以从两个表中收集结果,mysql,select,Mysql,Select,我有一个简单的查询,从“贷款”表中选择一本书的最新到期日 我使用以下查询 SELECT duedate, no FROM loan WHERE duedate = (SELECT duedate FROM loan ORDER BY duedate DESC LIMIT 1); 查询结果显示了最新日期和取书人的“否” 我现在正在寻找一种方法来修改查询以同时显示此人的姓名。但是,名称位于另一个名为“student”的表中,但上述查询结果中“loan”表中的“no”需要与“student”表

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

我使用以下查询

SELECT duedate, no
FROM loan 
WHERE duedate =
  (SELECT duedate FROM loan ORDER BY duedate DESC LIMIT 1);
查询结果显示了最新日期和取书人的“否”
我现在正在寻找一种方法来修改查询以同时显示此人的姓名。但是,名称位于另一个名为“student”的表中,但上述查询结果中“loan”表中的“no”需要与“student”表中的人员名称匹配

结果中的“否”将与“学生”表中的名称匹配,因为“否”也与名称位于“学生”表的同一行


如何修改查询以显示名称以及“否”和“截止日期”?

使用JOIN

SELECT loan.duedate, loan.no, student.name FROM loan
INNER JOIN student ON loan.no = student.name
了解更多关于


我不明白您为什么在已经存在的SQL查询中使用子查询。
也可以这样做,

SELECT duedate, no FROM loan ORDER BY duedate DESC LIMIT 1

使用JOIN

SELECT loan.duedate, loan.no, student.name FROM loan
INNER JOIN student ON loan.no = student.name
了解更多关于


我不明白您为什么在已经存在的SQL查询中使用子查询。
也可以这样做,

SELECT duedate, no FROM loan ORDER BY duedate DESC LIMIT 1
A允许您组合不同表的列。您需要在
on
子句中定义匹配列(在您的情况下是
no
,在大多数情况下这是一个ID)

SELECT loan.duedate, loan.no, student.name 
FROM loan
left JOIN student on loan.on = student.on
A允许您组合不同表的列。您需要在
on
子句中定义匹配列(在您的情况下是
no
,在大多数情况下这是一个ID)

SELECT loan.duedate, loan.no, student.name 
FROM loan
left JOIN student on loan.on = student.on

您需要使用
连接
。此解决方案假定“学生姓名”列的名称为“姓名”


出于性能目的,您很可能希望在两个表中的
no
列上创建索引。

您需要使用
join
。此解决方案假定“学生姓名”列的名称为“姓名”

SELECT loan.duedate, loan.no, student.name FROM loan
INNER JOIN student ON loan.no = student.no
ORDER BY loan.duedate DESC LIMIT 1

出于性能目的,您很可能希望在两个表中的
no
列上创建索引

SELECT loan.duedate, loan.no, student.name FROM loan
INNER JOIN student ON loan.no = student.no
ORDER BY loan.duedate DESC LIMIT 1
试试这个。。!古德·勒克:)


试试这个。。!祝你好运:)

试着提高问题的可读性。这将帮助你快速准确地得到答案。试着提高问题的可读性。它将帮助您快速正确地获取ans。