我通过R使用MySQL。我在同一个数据库中使用两个表,我注意到一些奇怪的东西,我无法解释。更具体地说,当我尝试使用外键在表之间建立连接时,结果并不是它应该得到的结果。
一个表名为Genotype_microsatellites,,第二个表名为Records_morpho.它们通过外键sample_id连接。
如果我只使用以下命令从Genotype_microsatellites表中选择具有某些特征的记录...
Gen_msat <- dbGetQuery(mydb, 'SELECT *
FROM Genotype_microsatellites
WHERE CIDK113a >= 0')
...the查询返回52个变量的546个观察值,这正是我所期望的。现在,我想执行一个向结果添加更多信息的查询,特别是通过包含来自Records_morpho表的数据。因此,我使用以下代码:
Gen_msat <- dbGetQuery(mydb, 'SELECT Genotype_microsatellites.*,
Records_morpho.net_mass_g,
Records_morpho.svl_mm
FROM Genotype_microsatellites
INNER JOIN Records_morpho ON Genotype_microsatellites.sample_id = Records_morpho.sample_id
WHERE CIDK113a >= 0')
问题是现在的输出有890个观察值和54个变量!一些sample_id值(即数据框中的行或个体)多次出现,这不应该是这种情况。我已经尝试使用SLECT DISTINCT来解决这个问题,但是这个问题不会消失。
任何帮助都将不胜感激。
https://stackoverflow.com/questions/50750381
复制相似问题