Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
内部连接:Mysql打印的行数超过可用行数(相同的多行)_Mysql_Sql_Join_Rows - Fatal编程技术网

内部连接: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选项和两个限制。

感谢您的快速回答!