我正在尝试对搜索框执行以下MySql查询。我正在尝试返回“相册”信息(标题等),同时包括该相册中第一张图像的缩略图。但是,我必须查找两个表来获取图像信息。首先,包含该相册中所有图片的photos_albums
,从该表中获取第一张图片ID
,然后在photos
表格中查找该图片信息。我相信我遇到的问题是,我需要告诉第一个LEFT JOIN将查询限制为1,但我没有运气这样做。我想我需要在JOIN中加入一个JOIN?对此有任何帮助将非常感激。
SELECT albums.title, albums.title_url, photos.path, photos.medType, photos.vpath
FROM albums
LEFT JOIN photos_albums
ON photos_albums.album_id = albums.id
LEFT JOIN photos
ON photos_albums.photo_id = photos.id
WHERE albums.user = '$site_user'
AND (
albums.title LIKE '$keyword%'
OR albums.title LIKE '% $keyword%')
LIMIT 6
答案 0 :(得分:3)
您可以尝试这样的事情
SELECT a.title, a.title_url, q.path, q.medType, q.vpath
FROM albums a LEFT JOIN
(
SELECT pa.album_id, pa.photo_id, p.path, p.medType, p.vpath
FROM
(
SELECT album_id, MIN(photo_id) photo_id
FROM photos_albums
GROUP BY album_id
) pa JOIN photos p
ON pa.photo_id = p.id
) q
ON a.id = q.album_id
WHERE a.user = '$site_user'
AND (
a.title LIKE '$keyword%'
OR a.title LIKE '% $keyword%')
LIMIT 6