首页 > 解决方案 > 如何使用 SQL 中的中间表从外部表中选择每个字段?

问题描述

我有一个关于纯 SQL 的问题。我与 3 个表有多对多关系userstagsuser_tag. 我想要做的是从tags表中选择每个字段,因为用户 ID 与user_tag.

我现在的查询看起来像这样 SELECT * FROM tags JOIN users_tags ON (users_tags.user_id = 1);

这会检索正确的信息(出于某种奇怪的原因两次),但也会从数据透视表中附加不必要的数据(因为SELECT *,但我需要保持这种方式)。我怎样才能只从tags表中获取相关数据?(已编辑)感谢您的关注

标签: mysqlsql

解决方案


您缺少JOIN连接两个表的条​​件。你只有一个过滤条件。像这样的东西:

SELECT *
FROM tags t JOIN
     users_tags ut
     ON t.tag_id = ut.tag_id
WHERE ut.user_id = 1;

您还没有解释列是什么,所以列名当然可能不同。


推荐阅读