mysql - 如何使用SQL中的中间表从外部表中选择每个字段?

标签 mysql sql

我有一个关于纯 SQL 的问题。我与 3 个表有多对多关系:userstagsuser_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/

相关文章:

mysql - 通过在彼此之间嵌套子查询来解决 MySQL 中 61 个表 JOIN 的限制

mysql - 左连接和条件 where 求和

c# - 需要遍历 SQL 表行,一次一个(表太大而无法使用适配器。填充)

php - Mysql 第二次 JOIN 返回空数组

mysql - 从连接表中选择类别并连接以形成列表结果

mysql - 连接两个表,但获取第二个表中每组的最后一条记录 mysql

php - mysql_num_rows() expects parameter 1 to be resource 错误

php - 获取特定用户的状态计数

SQL : How to query selecting only first row in every hour?

sql - 使用变量名称创建新的 mdb 表