mysql - 在 MySQL 上以嵌套方式进行内部连接

标签 mysql sql database

这是我的方案:

board(name, catId)
cat(id, catName)
userBoard(boardName, username)
msg(boardName, username, title, text)

假设用户名是“foo”。我正在努力实现以下目标,但不知道如何去做。我对 的自然连接感兴趣

userBoard.username = "foo"AND userBoard.boardName = board.name AND board.catId = cat.id AND msg.username = "foo"AND msg.boardName = board.name

MySQL 的查询应该是什么?

更新: 我忘了说我对以下返回值感兴趣

`board.name, cat.catName, msg.title, msg.text`

最佳答案

试试这个:

Select b.name, c.catName, m.title, m.text
from board b
   inner join Cat c on b.catId = c.id
   inner join userBoard ub on b.name = ub.boardName
   inner join msg on m b.name = m.boardName
where ub.username = "foo" and m.username = "foo"

您需要根据要从表中选择的内容来选择联接类型。

关于mysql - 在 MySQL 上以嵌套方式进行内部连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9109950/

相关文章:

mysql - 如何根据值连接重复值

mysql - 在页面上使用 SSL/https

sql - "HAVING ... GROUP BY"和 "GROUP BY ... HAVING"之间的区别

sql - Postgres 计算元素并按日期列

mysql - 如何为以下操作创建 SQL 查询?

mysql - 通过搜索最大编号的其他项目来查找相关项目。相似标签的

sql - MySQL 中的串联范围描述

sql - 协助自动递增主键

database - 从 Kusto、KQL 中的表中获取标量值

sql - 使用触发器检查 VARCHAR2 是否仅包含字母