我有三张桌子
POI 包含每行具有唯一ID的唯一行
图片,可能/可能不包含每个poi的多个记录
评论还可能包含表1中每个POI的多条记录
我想从评论中检索所有行,如果图片中有图片,请获取第一条记录的文件名,并在 POI <中包含名称国家/地区/ strong>
这是我到目前为止所做的:
SELECT
Reviews.review_id,
Reviews.poi_id,
Reviews.review,
POI.Name,
Images.file
FROM
Reviews
LEFT JOIN POI ON Reviews.poi_id = POI.ID
LEFT JOIN Images ON Reviews.poi_id = Images.ID
ORDER BY
POI.Name;
但这会返回多条记录(即链接到POI的每张图片的记录) 即使可能有多个图像,这可以修改为每个评论只有一条记录吗?或者
答案 0 :(得分:1)
我想你只想要这个:
SELECT
DISTINCT Reviews.review_id,
Reviews.poi_id,
Reviews.review,
POI.Name,
Images.file
FROM
Reviews
LEFT JOIN POI ON Reviews.poi_id = POI.ID
LEFT JOIN Images ON Reviews.poi_id = Images.ID
ORDER BY
POI.Name;
如果那不符合您的要求,请告诉我。
答案 1 :(得分:1)
您可以使用相关子查询执行此操作:
SELECT
Reviews.review_id
Reviews.review_id,
Reviews.poi_id,
Reviews.review,
POI.Name,
SELECT (
Images.file
FROM Images
WHERE Reviews.poi_id = Images.ID
ORDER BY Images.ID ASC
LIMIT 1
)
FROM
Reviews
JOIN POI ON Reviews.poi_id = POI.ID
ORDER BY
POI.Name;