用于将条件应用于连接中的多行的 SQL

标签 sql

我想我找到了我的问题的答案,我只是不确定语法,我不断收到 SQL 错误。

基本上,我想做与IN相反的事情。拿这个例子:

SELECT * 
  FROM users INNER JOIN 
       tags ON tags.user_id = users.id 
 WHERE tags.name IN ('tag1', 'tag2');

以上将返回具有“tag1”或“tag2”的任何用户。我想要同时拥有两者的用户。他们必须同时返回两个标签。我假设应该使用关键字 ALL,但不能让它工作。

谢谢你的帮助。

最佳答案

您将要再次加入标签表。

SELECT * FROM users
INNER JOIN tags as t1 on t1.user_id = users.id and t1.name='tag1'
INNER JOIN tags as t2 on t2.user_id = users.id and t2.name='tag2'

关于用于将条件应用于连接中的多行的 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4763143/

相关文章:

mysql - SQL语法错误: 'FROM table_A INNER JOIN table_B ON table_A.name = table_B.name' at line 1

sql - 如何查询连续数据的时间段值?

java - 我应该如何将键值传递给 PL/SQL 过程?

mysql - 如何在 Mysql 中取消透视下表? [请求更好的方法]

java - Hibernate 分页错误接近限制 - SQL Server

SQL Server 2005 无法绑定(bind)多部分标识符 "x"

sql - 防止自动递增整数主键?

php - 优化 select mysql 中的索引

php - 从哪里开始开发第一个数据库驱动的 Web 应用程序(长问题)?

sql - 生成 XML 文件时收到 PL/SQL 错误