内部查询过滤双重条目

时间:2018-04-12 15:11:55

标签: sql

我是SQL的新手,这是我的第一次查询。 该查询有效,但它产生大约31034个结果。 但是,它应该只有100个结果......我得到了一个重复条目的TON。

为什么我的查询会显示双重条目?

我的查询:

SELECT 
    server_ram.server_id, server.brandtype, server_ram.ram_max 
FROM 
    server 
INNER JOIN 
    server_ram 
WHERE 
    server.brandtype = 'Microcloud (X10SLE-F)' 
    AND server_ram.ram_max LIKE '%Registered%';

结果:

| 876 | Microcloud (X10SLE-F) | DDR3 ECC Registered     |
| 877 | Microcloud (X10SLE-F) | DDR3 ECC Registered     |
| 878 | Microcloud (X10SLE-F) | DDR3 ECC Registered     |
| 879 | Microcloud (X10SLE-F) | DDR3 ECC Registered     |
| 881 | Microcloud (X10SLE-F) | DDR3 ECC Registered     |
| 882 | Microcloud (X10SLE-F) | DDR3 ECC Registered     |
| 883 | Microcloud (X10SLE-F) | DDR3 ECC Registered     |
| 884 | Microcloud (X10SLE-F) | DDR3 ECC Registered     |
| 885 | Microcloud (X10SLE-F) | DDR3 ECC Registered     |
| 886 | Microcloud (X10SLE-F) | DDR3 ECC Registered     |
| 887 | Microcloud (X10SLE-F) | DDR3 ECC Registered     |

1 个答案:

答案 0 :(得分:2)

我猜你打算这样的事情:

SELECT sr.server_id, s.brandtype, sr.ram_max
FROM server s INNER JOIN
     server_ram sr
     ON sr.server_id = s.server_id
WHERE s.brandtype = 'Microcloud (X10SLE-F)' AND sr.ram_max LIKE '%Registered%';

注意:

  • 使用JOIN时,您始终需要ON子句。我推测你正在使用MySQL,其中该子句是可选的。
  • 表别名使查询更易于编写和阅读。
  • 目前还不清楚用于连接表的列是什么。以上只是猜测。