mysql - JOIN 3表查询

标签 mysql join

好的,我们开始吧

我有 3 个表:帖子、评论和成员,我需要从帖子中获取标题,从评论中获取消息,从成员中获取用户名。 所有表都有相同的 ID 来关联(?)

例如:我想从某个ID获取这些数据...

抱歉我的英语不好,这不是我的语言,而且我对 MySQL 的非常基本的技能(今天开始)。

编辑: 这是我的架构:

posts:    |ID|title|
          ----------------
          |1 |post title|        (example data)

comments: |USERID|UID|msg|  (UID is same as posts.ID)
          -----------------
          |5     |1  |message|   (example data)    

members:  |USERID|username|
          -----------------
          |5     |myusername|    (example data)

当我查询 ID 80(例如)时,将返回标题、与该帖子关联的消息 (UID) 以及与该评论关联的用户名。

例如。如果帖子 80 有 5 条评论,则显示帖子标题和评论用户名。

我觉得这样比较清楚。 (不是吗?)

最佳答案

也许是这样的:

SELECT P.Title, C.Message, M.Username
FROM   Posts P
INNER JOIN Comments C ON P.PostID = C.PostID
INNER JOIN Memmbers M ON C.MemberID = M.MemberID
WHERE P.PostID = 123

这是你的模式(我认为我的更好,这就是我离开它的原因):)

SELECT P.title, C.msg, M.username
FROM   posts P
INNER JOIN comments C ON P.ID = C.UID
INNER JOIN memmbers M ON C.USERID = M.USERID
WHERE P.ID = 80

在这种情况下,帖子标题会重复,但我相信这就是您所要求的。

关于mysql - JOIN 3表查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3556883/

相关文章:

mysql - NodeJS Express 内连接问题

mysql - 使用 "MATCH AGAINST"搜索会导致 CakePHP 应用程序崩溃

mysql - 有更好的方法来执行此查询吗?

mysql - 如何使用mysql中的存储过程输出参数?

mysql - 无法在 mysql 中创建触发器,因为错误代码#1193

mysql - Mysql中三表无重复减去一张表的并集

sql - 单个查询中的 Postgresql 多个连接,其中连接的外键不存在于所有表中

mysql - 多列数据

mysql - 避免使用 INNER JOIN + ORDER BY 进行文件排序

mysql - 使用联接更新 SQL 查询