我有一个关于纯 SQL 的问题。我与 3 个表有多对多关系:users
、tags
和 user_tag
。我想要做的是从 tags
表中选择每个字段,以获取用户 ID 与 user_tag
中的条目匹配的尽可能多的条目。
我现在的查询如下所示
从标签中选择 * 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;
您还没有解释这些列是什么,所以列名当然可能不同。
关于mysql - 如何使用SQL中的中间表从外部表中选择每个字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57977182/