mysql - 如何使用 SQL 中的中间表从外部表中选择每个字段?
问题描述
我有一个关于纯 SQL 的问题。我与 3 个表有多对多关系users
:tags
和user_tag
. 我想要做的是从tags
表中选择每个字段,因为用户 ID 与user_tag
.
我现在的查询看起来像这样
SELECT * FROM tags JOIN users_tags ON (users_tags.user_id = 1);
这会检索正确的信息(出于某种奇怪的原因两次),但也会从数据透视表中附加不必要的数据(因为SELECT *
,但我需要保持这种方式)。我怎样才能只从tags
表中获取相关数据?(已编辑)感谢您的关注
解决方案
您缺少JOIN
连接两个表的条件。你只有一个过滤条件。像这样的东西:
SELECT *
FROM tags t JOIN
users_tags ut
ON t.tag_id = ut.tag_id
WHERE ut.user_id = 1;
您还没有解释列是什么,所以列名当然可能不同。
推荐阅读
- java - JavaFX 将画布拉伸到尺寸
- c++ - 在 neovim 中编译/运行文件的问题
- loops - 带有数字增量的 Ansible 双循环
- shell - 使用 Windows 终端和 Vscode 终端时如何运行单独的鱼功能
- c# - 为什么 VisualStateManager.GoToState 不适用于 WPF 中的控件?
- angular - Mat 对话框关闭在 Angular 11、Meterial 11 上不起作用
- python - deepFace.analyze() 在 pycharm 中不起作用。但为什么?
- c++ - 检查二叉树的级别之和是否相等
- transactions - 此代码只工作一次,当我再次汇款时,它会汇款但不会更新我的净余额
- powerbi - 将 ss.xxx 转换为 mm.ss.xxx - Powerbi