0

我有两个表: 带BLOG方案的表(id_blog、名称、内容、日期、建筑)和IMG带方案的表(id_img、文件名、id_blog)。

通过下面的查询,我得到了 LEFT JOIN 表的结果,BLOG并且IMG没关系。

SELECT b.name, 
       b.content, 
       i.id_blog, 
       i.filename
FROM blog b
LEFT JOIN img i USING(id_blog)
WHERE building IN (2,3)
ORDER BY i.filename DESC

我的查询结果:

Building A | Warehouse | 1 | pic3.jpg
Building A | Warehouse | 1 | pic4.jpg
Building A | Warehouse | 1 | pic6.jpg
Building B | Store     | 2 | pic7.jpg
Building B | Store     | 2 | pic9.jpg
Building B | Store     | 2 | pic8.jpg
Building C | School    | 3 | pic5.jpg

我应该怎么做才能得到没有重复、、、namecontent的结果id_blog

我需要的是以下结果:

Building A | Warehouse | 1 | pic6.jpg
Building B | Store     | 2 | pic9.jpg
Building C | School    | 3 | pic5.jpg
4

2 回答 2

0

鉴于 IMG 表的数据(和设计),他们无法获得您想要的结果。

如果您的意图是每个博客只有一个 img,那么要么删除错误记录(即 ib_blog,filename 1,pic3.jpg 1,pic4.jpg),要么在 blog 表中添加一个 img_filename 列并去掉图像表。

于 2022-02-15T13:21:38.703 回答
0

利用:

SELECT b.name, 
       b.content, 
       i.id_blog, 
       max(i.filename)  as filename
FROM blog b
LEFT JOIN img i USING(id_blog)
WHERE building IN (2,3)
GROUP BY b.name,b.content,i.id_blog
ORDER BY filename DESC;

演示

于 2022-02-15T13:15:56.417 回答