Я использую MySQL через R. Я работаю с двумя таблицами в одной базе данных и заметил нечто странное, что не могу объяснить.Точнее говоря, когда я пытаюсь установить связь между таблицами с использованием внешнего ключа, результат не тот, каким он должен быть.
Одна таблица называется Genotype_microsatellites , вторая таблицаназывается Records_morpho .Они связаны через внешний ключ sample_id .
Если я выбираю только записи с определенными характеристиками из таблицы Genotype_microsatellites , используя следующую команду ...
Gen_msat <- dbGetQuery(mydb, 'SELECT *
FROM Genotype_microsatellites
WHERE CIDK113a >= 0')
... запрос возвращает 546 наблюдений для 52 переменных, что я и ожидал.Теперь я хочу сделать запрос, который добавляет немного больше информации к моим результатам, в частности, путем включения данных из таблицы 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, но проблема не исчезла.
Любая помощь будет высоко ценится.