You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQLite关联三张表查询:如何获取图片及其所属用户信息?

解决方案:查询图片及其所属用户信息

这是个典型的多表关联查询场景,咱们可以通过JOIN语句把三个表串起来拿到需要的数据,直接上可用的SQL代码:

SELECT 
    Pictures.name AS picture_name,
    Users.name AS user_name
FROM Pictures
JOIN Albums ON Pictures.ALBUM_ID = Albums.ID
JOIN Users ON Albums.USER_ID = Users.ID;

代码说明:

  • 我们通过两次关联把三个表串联起来:
    • 第一次用Pictures.ALBUM_ID = Albums.ID关联图片表和相册表,找到每张图片对应的相册
    • 第二次用Albums.USER_ID = Users.ID关联相册表和用户表,找到相册所属的用户
  • 使用SELECT指定了最终需要的两个字段,并且通过AS给字段起了别名,让结果集的列名更直观(比如picture_name和user_name)
  • 这里用的JOIN等价于INNER JOIN,只会返回三个表中能成功匹配的记录——也就是只有那些有对应相册、且相册有归属用户的图片才会被查询出来

特殊场景处理:

如果你的业务中存在没有对应相册的图片或者没有归属用户的相册(虽然按你的表结构设计应该不会出现这种情况),可以改用LEFT JOIN来保留所有图片记录,即使关联不到用户时也能显示图片信息:

SELECT 
    Pictures.name AS picture_name,
    -- 用COALESCE把NULL替换成友好提示
    COALESCE(Users.name, '无归属用户') AS user_name
FROM Pictures
LEFT JOIN Albums ON Pictures.ALBUM_ID = Albums.ID
LEFT JOIN Users ON Albums.USER_ID = Users.ID;

内容的提问来源于stack exchange,提问作者DankMemesBot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:24:19