Я понимаю, что вы хотите, чтобы первое изображение на плод, первое было определено как: изображение с наименьшим idimage
.
Если вы просто хотите, чтобы URL-адрес изображения, коррелированный подзапрос должен быть приемлемым решением:
select
f.*,
(
select i.url
from images i
where i.idfruit_image = f.idfruit
order by i.idimage
limit 1
) url
from fruits f
Если вам нужна вся запись изображения, можно присоединиться к одному из вариантов, а затем выполнить фильтрацию с помощью подзапроса:
select f.*, i.*
from fruits f
inner join images i on i.idimage = (
select min(i1.idimage) from images i1 where i1.idfruit_image = f.idfruit
)
Наконец: в MySQL 8.0, вы можете использовать row_number()
для этого:
select *
from (
select
f.*,
i.*,
row_number() over(partition by i.idfruit_image order by i.idimage) as rn
from fruits f
inner join images i on i.idfruit_image = f.idfruit
) t
where rn = 1