首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mySQL:从多个表中选择数据

mySQL:从多个表中选择数据
EN

Stack Overflow用户
提问于 2011-07-19 09:54:27
回答 1查看 1.7K关注 0票数 1

我需要帮助构建一个mysql查询来从多个表中进行选择。我有三个与图像相关的数据库表:imagestagstag_asc。我希望通过提供image_id来获取图像数据及其标记名。

例如,以下是我的表结构:

图像:

代码语言:javascript
复制
image_id    image_name     path       date   
1            test.jpg      dir       1311054433

标签:

代码语言:javascript
复制
tag_id      image_id
1             1
2             1

tag_asc:

代码语言:javascript
复制
tag_id      tag_name
1            "first"
2            "second"
3            "third"

我想从图像表中用image_id = 1获取图像的数据,从tag_asc表中获取与image_id=1关联的所有标记名。

我正在使用CodeIgniter活动记录,但我只需要加入这些表。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-19 10:13:14

代码语言:javascript
复制
select *
from images i
left join tags t on t.image_id = i.image_id
left join tag_asc ta on ta.tag_id = t.tag_id
where i.image_id = 1;

使用LEFT JOIN意味着即使在其他表中没有连接行,也将返回行(但对于缺少的行,您将在列中获得null值),这通常是可取的。

如果您想要一行(不是在问题中说明,而是在注释中说明),请使用以下命令:

代码语言:javascript
复制
select i.image_id, group_concat(tag_name) as tag_names
from images i
left join tags t on t.image_id = i.image_id
left join tag_asc ta on ta.tag_id = t.tag_id
where i.image_id = 1
group by 1;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6745325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档