#sql #database #inner-join
#sql #База данных #внутреннее соединение
Вопрос:
Я пытаюсь вернуть некоторые столбцы из 2 таблиц, которые совместно используют столбец ID, используя следующую систему запросов к базе данных браузера, которая считывает данные из таблиц, показанных на этой веб-странице. Я считаю, что способ сделать это — использовать INNER JOIN
(например, см. Это руководство).
SELECT sami_dr2.DR2Sample.CATID,
sami_dr2.DR2Sample.Mstar,
sami_dr2.StellarKinematics.PA_STELKIN
FROM sami_dr2.DR2Sample INNER JOIN sami_dr2.StellarKinematics
ON sami_dr2.DR2Sample.CATID = sami_dr2.StellarKinematics.CATID;
Однако, когда я запускаю этот запрос, я получаю сообщение об ошибке:
sql: повторяющиеся столбцы не поддерживаются. Попробуйте использовать псевдоним для этих столбцов в предложении SELECT, например, ВЫБЕРИТЕ t1.CATAID, t2.CATAID становится SELECT t1.CATAID как t1_CATAID, t2.CATAID как t2_CATAID
Но, насколько я знаю, весь смысл использования INNER JOIN заключается в удалении дубликатов, поскольку я не возвращаюсь sami_dr2.StellarKinematics.CATID
только в свою выходную таблицу sami_dr2.DR2Sample.CATID
.
Я также обнаружил, что использование SELECT sami_dr2.DR2Sample.CATID as ID_1, sami_dr2.StellarKinematics.CATID as ID_2
в выборе также не устраняет проблему.
Любая помощь по этому вопросу была бы весьма признательна!
Комментарии:
1. Какую СУБД вы используете?
2. ЕСТЕСТВЕННОЕ СОЕДИНЕНИЕ и СОЕДИНЕНИЕ, ИСПОЛЬЗУЮЩИЕ оба, удаляют дублированные столбцы, JOIN ON — нет.
3. Используйте псевдонимы таблиц и посмотрите, что произойдет.
4. @Brad РАЗЛИЧАЕТСЯ, если для строк .. не для столбцов
5. @user8188120 Удалите имена схем из списка выбора:
select DR2Sample.CATID
вместоselect sami_dr2.DR2Sample.CATID
. Или используйте псевдонимы таблиц, они тоже решают проблему