mysql - 如何查询一张表,却从另一张表中获取相关信息?

标签 mysql sql

例如我有两个表:

posts {id,user_id,date}
design{user_id, bg_color}

例如,我有一个 post id 为 18,我想通过该帖子的相同 user_id(即 18)检索设计表

我该如何查询?

对不起这个愚蠢的,我很困惑? :))

最佳答案

SELECT design.user_id, design.bg_color
FROM posts
JOIN design
  ON posts.user_id = design.user_id
WHERE posts.id = 18

换句话说,我们首先从posts中选择,其中id为18;
然后我们加入 design 行,其上的 user_id 等于 posts 行的 user_id
我们从 design 表中检索相应的 user_idbg_color

请注意,如果有多行具有相同的 design.user_id,您将返回多行 - 示例:

posts.id  | posts.user_id
 1           5
 3           2
 18          9


design.user_id | design.bg_color
 2                '#aaffcc'
 5                'red'
 5                'blue'
 9                '#000000'
 9                '#cafe00'

查询结果:

posts.id | posts.user_id | design.user_id | design.bg_color
 18         9               9                '#000000'
 18         9               9                '#cafe00'

关于mysql - 如何查询一张表,却从另一张表中获取相关信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4563238/

相关文章:

mysql - 表之间的多个连接

mysql - Express Node 发送文件到DB或文件上传

mysql - 如何使用字符串的前缀(即第一个空格之前的部分)进行分组?

mysql - 长度大于 1 的排序依据

mysql - 在子查询中使用 in 运算符

mysql - 即使使用索引,从 10 亿行表中匹配 1 亿行的 SELECT COUNT 查询也需要 30 秒

php - 在 Laravel 中搜索列名以获取行

mysql - 从 Matlab 运行存储过程仅返回 1 行

php - 如何输出查询数据

mysql - 最好在sql查询中使用 "less than equal"或 "in"