【发布时间】:2018-11-10 02:48:05
【问题描述】:
我有两张表,一张存储广告 (ads) 和其他存储图像 (images)。 images 通常在ads 中的每条记录中包含多个图像。
ads表
+------------+------------+
|ad_id |title |
+------------+------------+
|1 |sample1 |
+------------+------------+
|2 |sample2 |
+------------+------------+
images表
+------------+------------+
|image_id |image |
+------------+------------+
|1 |1.jpg |
+------------+------------+
|1 |2.jpg |
+------------+------------+
|2 |3.jpg |
+------------+------------+
我想要做的是制作一个广告列表,在ads 中的每条记录中包含一张图片,并且当前使用以下 sql 查询。
SELECT a.`title`, i.`image`
FROM ads a
LEFT JOIN `images` i ON i.`id` = a.`id`
但这会返回三个记录而不是两个广告,其中包含来自 ads 的重复记录,因为 images 包含两条图像记录。
如何在广告中限制每条记录只能使用一张图片。
任何帮助将不胜感激。 TIA
PS: 当前输出是这样的
sample1, 1.jpg
sample1, 2.jpg
sample2, 3.jpg
但我期待
sample1, 1.jpg
sample2, 3.jpg
或
sample1, 2.jpg
sample2, 3.jpg
【问题讨论】:
-
你的 dbms 是什么?和你的预期结果?
-
因为
images表中有两行image_id= 1 -
嗨。这是一个常见问题解答。请始终在谷歌上搜索您的问题/问题/目标的许多清晰、简洁和特定的版本/措辞,带和不带您的特定字符串/名称,并阅读许多答案。将您发现的相关关键字添加到搜索中。如果您没有找到答案,请发布,使用 1 个变体搜索作为标签的标题和关键字。请参阅向下投票箭头鼠标悬停文本。如果您确实有要发布的非重复代码问题,请阅读并在minimal reproducible example 上采取行动。
标签: sql join group-by aggregate-functions