#php #html #sql
#php #HTML #sql
Вопрос:
Как я могу найти МАКСИМАЛЬНОЕ значение tenant_id для ЛЕВОГО СОЕДИНЕНИЯ с заданным stall_id?
$sql = "SELECT * FROM stall s
LEFT JOIN tenant t
ON t.stall_id = s.stall_id
LEFT JOIN rent r
ON r.tenant_id = t.tenant_id AND r.rent_status = 1
WHERE s.stall_id = 1";
Комментарии:
1. Почему не просто
select max(rent_status)...
?2. Вы спрашиваете МАКСИМАЛЬНОЕ значение или количество?
3. потому что я отображаю другие значения из других таблиц.
4. @Kushan Мне действительно трудно понять, какой код может использоваться. Я намерен отобразить сведения о стойле в модальном. Если он свободен или занят. (rent_status=1 для занято, а rent_status=0 для вакантно).
Ответ №1:
Вы хотите, как этот:-
SELECT * FROM stall s
LEFT JOIN tenant t
ON t.stall_id = s.stall_id
LEFT JOIN rent r
ON r.tenant_id = t.tenant_id AND r.rent_status = 1
WHERE s.stall_id = 1 ORDER BY r.tenant_id desc LIMIT 1
Комментарии:
1. Вы очень умный человек, который просто догадывается, что я хочу отобразить.
Ответ №2:
Я не думаю, что вам нужно использовать MAX()
в этом случае, поскольку rent_status
поле выглядит как логическое значение (1 или 0). Это означает, что простое INNER JOIN
решение сделает свое дело.
SELECT * FROM `stall` AS s
INNER JOIN rent AS r ON r.stall_id = s.id AND r.rent_status = 1
WHERE s.stall_id = 1