没有 JOIN 的 MySQL 语句

标签 mysql join where-clause

我有一个 MySQL 表,我正在尝试查询articles_data,但我不想与其他表进行任何联接。

它有行:

article_id  doc_type  doc_type_id
1           1         2
1           2         1
2           1         2
3           1         2
3           2         1

我正在尝试编写一个查询,该查询将返回 where doc_type是 1 且 doc_type_id是 2 并且它还有另一行相同的 article_id哪里doc_type是 2 且 doc_type_id是 1 所以在上面的例子中我试图返回 article_id 1 和 3。

有什么想法可以编写 SQL 查询来执行此操作吗?

最佳答案

您不必联接到其他表,但可以通过自联接来实现

这是我的想法,您可能需要调整语法

select distinct article_id
from articles_data a
join articles_data b on b.articles_id = a.articles_id
where a.doc_type = 1 and a.doc_type_id = 2
and b.doc_type = 2 and b.doc_type_id = 1

关于没有 JOIN 的 MySQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6565615/

相关文章:

sql - 在 sqlite 数据库中查找满足条件交集的键

MySql 子查询作为列和别名

mysql - 包含 union 的 where 子句仅返回第一个查询

MySQL 按 Where 子句匹配的顺序排序结果

python - 将 html 源保存到

php - 以尽可能最佳的规范化方式将可变数量的数据输入数据库

php - 如何将html格式的信息写入MySQL数据库

mysql - InfoBright包是否带有Mysql?

mysql - 如何连接同一个表中的多个列?

php - 使用 Doctrine_RawSql 对象连接 3 个表