mysql - 内连接 : Mysql prints more lines than available (same multiple rows)

标签 mysql sql join rows

我必须要加入表(hmmscan1arath_scan)。它们都显示相同的列名称,并且 arath_scan 是一个较小的表,包含在 hmmscan1 中。现在我只想选择 hmmscan1hmmscan1 的某一列 (domain_name) 与 arath_scan 一致的条目。

我使用了以下命令:

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;

OR 按您想要区分的任何列进行分组。作为h.query_prot_id

关于mysql - 内连接 : Mysql prints more lines than available (same multiple rows),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15295850/

相关文章:

php - 对 ORDER BY FIELD 产生的记录组进行排序

php - 如何从查询中的一个字段获取信息以在另一查询中使用?

python - 使用 psycopg2 将列名作为参数传递给 PostgreSQL

c# - 将数据表从 C# 传递到 SQL Server 2008

c# - 工作台的连接表和链接表之间有区别还是相同?

MySQL 存储过程删除所有行而不是只删除一个

sql - Hive sql 结构不匹配

SQLite3限制内连接使用时间

mysql - sql 没有显示正确的结果

java - Hibernate Envers 修订日期起的时间戳