内部连接:Mysql打印的行数超过可用行数(相同的多行)
我必须加入我想要加入的表(内部连接:Mysql打印的行数超过可用行数(相同的多行),mysql,sql,join,rows,Mysql,Sql,Join,Rows,我必须加入我想要加入的表(hmmscan1和arath\u scan)。它们都显示相同的列名,arath_scan是一个较小的表,包含在hmmscan1中。现在我只想选择hmmscan1的条目,其中hmmscan1和arath\u scan的某列(domain\u name)一致 我使用了以下命令: SELECT h.auto_inc, h.query_prot_id, h.taxon_schema, h.domain_name FROM h
hmmscan1
和arath\u scan
)。它们都显示相同的列名,arath_scan
是一个较小的表,包含在hmmscan1
中。现在我只想选择hmmscan1
的条目,其中hmmscan1
和arath\u scan
的某列(domain\u name
)一致
我使用了以下命令:
SELECT h.auto_inc,
h.query_prot_id,
h.taxon_schema,
h.domain_name
FROM hmmscan1 AS h
INNER JOIN arath_scan
ON h.domain_name = arath_scan.domain_name;
结果是,我得到的行数超过了hmmscan1
上的可用行数,这正是我想要减少的。。。。因此,我得到的不是约10.000行,而是包含许多多个条目的500.000行
有人知道为什么吗?你需要一个
分组人
select h.auto_inc,h.query_prot_id,h.taxon_schema, h.domain_name
from hmmscan1 as h
inner join arath_scan on h.domain_name=arath_scan.domain_name
GROUP BY h.domain_name;
或按要区分的任何列分组。作为h.query\u prot\u id
解决此特定问题的另一种方法:
从arath_扫描a、hmmscan1 h中选择不同的h.query_保护id、h.taxon_模式、h.prot_id、h.domain_名称,其中a.query_保护id=h.query_保护id和a.domain_名称=h.domain_名称
我不得不在where子句中使用distinct选项和两个限制。感谢您的快速回答!