2013-08-15 5 views
2

У меня есть 2 таблицы: приложения и изображения.MySQL. Левые присоединяются к одной строке соответствия

Каждое приложение имеет много изображений, связанных с ним в таблице изображений, каждое изображение принимает тип перечисления и может меня несколько типов каждого типа.

Я хочу вернуть одну строку с одним изображением на основе типа перечисления.

приложений

intId | strName | txtDescription 

изображения

intImageId | enumImageType | strImageURL | intRelId 

(images.intRelId = apps.intId)

Я попытался следующие, но это возвращается строку для каждого изображения, Я просто хочу вернуть одну строку с самым высоким значением intImageId

SELECT * 
FROM apps 
LEFT JOIN images AS avatarTbl 
    ON apps.intId = avatarTbl.intRelId 
    AND avatarTbl.enumImageType = 'avatar' 
WHERE intId = '2' 
ORDER BY avatarTbl.intImageId DESC 
+3

добавить 'LIMIT 1' в конце? – KarelG

+1

Я идиот. Спасибо :) – Fraser

+0

@KarelG Поп-комментарий в ответе, и я дам вам галочку – Fraser

ответ

2

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

SELECT * 
FROM apps 
LEFT JOIN images AS avatarTbl 
    ON apps.intId = avatarTbl.intRelId 
    AND avatarTbl.enumImageType = 'avatar' 
WHERE intId = '2' 
ORDER BY avatarTbl.intImageId DESC 
LIMIT 1 

удачи.

Смежные вопросы