У меня есть две таблицы: Car
и Rent
+----------+-----------+---------+--------+
| pk_carid | fk_rentid | name | status |
+----------+-----------+---------+--------+
| 1 | 1 | toyota | gone |
+----------+-----------+---------+--------+
| 2 | 2 | tata | here |
+----------+-----------+---------+--------+
| 3 | 3 | ferrri | here |
+----------+-----------+---------+--------+
| 4 | 1 | toyota | here |
+----------+-----------+---------+--------+
| 5 | 2 | tata | gone |
+----------+-----------+---------+--------+
| 6 | 3 | ferrrii | gone |
+----------+-----------+---------+--------+
Я хочу просто получить запись, где pk_cardid
- 4, 5 или 6, но не 1, 2 или 3.
Я пробовал следующий запрос, но он дает мне запись только последней строки, где pk_carid = 6
.
SELECT c.cardid
,r.rentid
,c.name,
FROM cars AS c
INNER JOIN rent AS r
ON r.rentid = c.carid
WHERE (c.carid =(SELECT MAX(c2.carid) Expr1 FROM cars c2 )) group by r.rentid
Это должно работать:
select cars.* from cars
join
(
select max(carid) as id
from cars
group by rentid
)as maxCar on maxCar.id = cars.carid
или вы можете попробовать
select * from cars
where carid in
(
select max(carid) as id
from cars
group by rentid
)