sql - 使用内部联接更改此查询?

标签 sql mysql

我猜我在使用内部联接时遇到了一些问题:

select count(distinct id) 
  from svn1,
       svn2 
 where svn1.revno = svn2.revno 
   and svn1.type = 'Bug' 
   and svn2.authors IN (select authors 
                          from svn2 
                         where revno = '33')

如何使用内部连接使它更快?我的内部联接查询给出了奇怪的结果。

svn1 的表信息: 列:id revno type 数据:
1 22 错误
1 23 变化
1 24 漏洞
2 33 错误
2 34 错误

svn2 的表信息: 列:revno 作者 数据:
22 A
22 B
22 C
33 D
33 A
33 C

我想要 bug 类型的 ID,它与 revno 33 的作者有共同的作者。即其中也有 revno 和作者 A、D 或 C 的 ID

一般来说,我还想要一个查询来回答给一个 id 找到其他具有共同作者的 id。

最佳答案

你需要这样的东西:

select count(distinct id)
from svn1 inner join svn2 on svn1.revno = svn2.revno
      inner join svn2 second on svn2.authors = second.authors
where svn1.type='Bug' and and second.revno='33'

关于sql - 使用内部联接更改此查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4091777/

相关文章:

python - 使用 python 从 MYSQL 数据库中显示随机抽认卡

sql - 如何连接两个表但只返回不匹配的行?

mysql - 查询一张表中的项目

mysql - 如何在插入 MySQL 数据库之前以编程方式检查重复行

php - 使用 MySQL 查询返回多个数据

MySQL SELECT From TABLE WHERE FIELD TITLE 不喜欢

php - 根据表2从表1中选择记录

mysql - MySQL 查询执行速度非常慢

mysql - SQL Server 默认值 x 行的平均值

mysql - 计算具有相同值的行数