从 SELECT 查询中删除 JOIN
Removing JOIN from SELECT query
我有一个包含 INNER JOIN 的 SELECT 查询。我正在寻找一种方法来创建相同的查询但没有任何类型的 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
这可能吗?我该如何创建它?
忽略 'why' 你会想这样做,只是将其作为一个测验问题来处理,如果 JOIN 是 1:1,你可以使用子 select 而不是 JOIN ;
SELECT
loan.duedate,
loan.no,
(SELECT student.name FROM student WHERE student.no = loan.no) AS name
FROM
loan
ORDER BY
loan.duedate DESC
LIMIT 1
转换起来很简单,但 Inner Join 更有意义。
SELECT loan.duedate, loan.no, student.name
FROM loan l,
student s
Where l.no = s.no
ORDER BY l.duedate DESC
LIMIT 1
我有一个包含 INNER JOIN 的 SELECT 查询。我正在寻找一种方法来创建相同的查询但没有任何类型的 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
这可能吗?我该如何创建它?
忽略 'why' 你会想这样做,只是将其作为一个测验问题来处理,如果 JOIN 是 1:1,你可以使用子 select 而不是 JOIN ;
SELECT
loan.duedate,
loan.no,
(SELECT student.name FROM student WHERE student.no = loan.no) AS name
FROM
loan
ORDER BY
loan.duedate DESC
LIMIT 1
转换起来很简单,但 Inner Join 更有意义。
SELECT loan.duedate, loan.no, student.name
FROM loan l,
student s
Where l.no = s.no
ORDER BY l.duedate DESC
LIMIT 1