Если речь идет о 3 таблицах [ news ], [ author ] и [ image ] с соответствующими столбцами, тогда
Подход к производной таблице
вы можете иметь производную таблицу изображений, чтобы получать одно изображение на новости, а затем объединить ее с таблицей news и author как показано.Это было написано и протестировано на SQL Server.
SELECT
N.[newsStoryTitle]
,A.authorName
,I.imageData1
FROM [news] N
LEFT OUTER JOIN author A ON A.newsID = N.newsID
LEFT OUTER JOIN
(
SELECT newsID, MAX(imageData) AS imageData1 FROM [image]
GROUP BY newsID
) AS I ON I.newsID = N.newsID
ORDER BY N.newsID
Вы можете заменить ЛЕВЫЕ ВНЕШНИЕ СОЕДИНЕНИЯ на ВНУТРЕННИЕ СОЕДИНЕНИЯ, если вам не нужны новости без изображений.
Коррелированный подзапросподход (как предложено Марсело Кантосом)
Если imageData хранится в виде текста или изображения, то MAX в производной таблице не будет работать.В этом случае вы можете использовать коррелированный подзапрос, подобный следующему:
SELECT N.newsStoryTitle ,
A.authorName ,
I.imageData
FROM dbo.news N
INNER JOIN dbo.author A ON N.newsID = A.newsID
INNER JOIN dbo.image I ON N.newsID = I.newsID
WHERE imageID = ( SELECT MAX(imageID)
FROM dbo.image
WHERE newsID = N.newsID
)
ORDER BY n.newsID