mySQL INNER JOIN таблица Столбец 'ID', где предложение неоднозначно - PullRequest
0 голосов
/ 01 ноября 2018

этот код создал ошибку.

Код ошибки: 1052. Идентификатор столбца в том, где предложение является неоднозначным

      SELECT h1.name, h1.gender,h2.gender
        FROM hampster h1, hampster h2,partner p
        INNER JOIN partner on h1.ID = partner.ID1
        INNER JOIN children on h2.ID = children.ID1
WHERE h1.id = p.id1
  AND h2.id = p.id2
  AND h1.gender = h2.gender
  AND EXISTS (SELECT c.id1
            FROM children c
            WHERE c.id1 = p.id1
             OR  c.id1 = p.id2)
ORDER BY h1.gender, h1.name;

Это создается, когда я добавляю хемпстеров h2 в мой запрос. моя цель - использовать внутреннее соединение, чтобы объединить два экземпляра таблицы hamspter и по-прежнему использовать 'h1' и 'h2', чтобы ссылаться на них.

Это ожидаемый результат запроса

h1.name    h2.name gender
Alex        King    0
Grant       Alex    0
Jack        Grant   0
Cathy       Amy     1
Trish       Amy     1

1 Ответ

0 голосов
/ 01 ноября 2018

Вы пропустили псевдоним таблицы в состоянии условия, сервер не знал, какой столбец идентификатора вы используете.

Попробуйте это:

, где h1.ID = 101

...