Присоединяйтесь к MySQL запрос.Предел 1 на втором столе только с порядком убывания - PullRequest
0 голосов
/ 12 июня 2018
SELECT *
FROM student as std LEFT JOIN
     (SELECT * FROM billing WHERE `paid` < '4' ) AS bill
    ON bill.reg_id = std.reg_id
GROUP BY bill.reg_id
ORDER BY bill.id

Здесь таблица ученика является главной таблицей, а ее первичный ключ - внешним ключом в таблице счетов.В таблице счетов имеется несколько записей с учащимся reg_id.

Мне нужна последняя запись счета с лимитом 1 и без ограничения для таблицы учащегося.

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Я предполагаю, что есть столбец с именем billing_date, вам нужно обновить запрос с правильной отметкой времени.Это присваивает каждой учетной записи ранг, основанный на ее недавности, а затем отбрасывает только самые последние.Предполагается, что MySQL 8.0, вы можете имитировать это в более ранней версии.

select
* 
from student std
left join (select
*, row_number() over (partition by reg_id order by billing_date desc) rn
from billing) bill on bill.reg_id = std.reg_id and rn=1
0 голосов
/ 12 июня 2018

Попробуйте этот запрос, я думаю, он должен работать

SELECT *
FROM student as std LEFT JOIN
 (SELECT * FROM billing WHERE `paid` < '4' group by reg_id order by id desc) 
 AS bill
ON bill.reg_id = std.reg_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...