mysql - 连接 3 个 MySQL 表的最佳方法

标签 mysql database join subquery

我有一个标签名称,我需要从标签表中获取标签 ID,然后在分类表中查找与该标签 ID 匹配的所有 id,然后获取与分类表中的 id 匹配的所有项目。我可以在 1 个查询中完成所有操作还是需要子查询?这是数据库结构的示例

tags database
tid, tag

tags taxonomy database
id, wid, tid

items databse
wid, *

我有标签数据库中的标签,我需要从标签数据库中获取tid,然后从分类数据库中返回所有wid,其中tid等于我们刚刚获取的内容,然后从项目数据库中返回*。我可以通过运行 2 个单独的查询来完成此操作,但我希望只用 1 个查询即可完成。 谢谢

最佳答案

您只需加入表格即可:

select *
from tags tg
left join taxonomy tx
    on tg.tid = tx.tid
left join items i
    on tx.wid = i.wid

如果您不熟悉 JOIN 语法,这里有一篇很好的文章:

Visual Explanation of JOINs

关于mysql - 连接 3 个 MySQL 表的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12677840/

相关文章:

SQL - 查找以相同字符开头的行

mysql - 使用 VARCHAR 作为 ID 的任何数据库问题

sql - ActiveRecord::Relation join,如何将连接表的一列添加到新名称的查询结果中?

php - MySQL JOIN 一个表,然后 JOIN 那个新表到它自己

python - 当我的机器中已经安装了 MySQL 时,我还需要在 Django 虚拟环境中安装 MySQL 吗?

python - Django 和 MySQL 需要哪些配置设置来支持并发请求?

php - php提交表单后如何返回同一页面?

mysql - 由于外键 phpMyAdmin 的约束,BigDump 无法导入

php - 如何将一行与另一个表中的另一行连接

mysql - 从第三张表中获取记录