Неоднозначный левый присоединяйся?
Вопрос
Так что я борюсь с тем, что, как я думаю, очень простая проблема. Я немного искал, но ни одно из решений, которые я обнаружил до сих пор, не работала над моей проблемой.
SELECT arrangement_ID, hva, dato
FROM tt_arrangement LEFT JOIN (tt_vaktliste_vakt)
ON (tt_arrangement.arrangement_ID = tt_vaktliste_vakt.arrangement_ID)
Это, естественно, производит «неоднозначную ошибку», поскольку столбец «ustorage_id» присутствует как в TT_Arrangement, так и в TT_VAKTListe_Vakt. Думая, что это было легко исправить, я сделал следующие изменения:
SELECT **arrangement_ID.tt_arrangement**, hva, dato
FROM tt_arrangement LEFT JOIN (tt_vaktliste_vakt)
ON (tt_arrangement.arrangement_ID = tt_vaktliste_vakt.arrangement_ID)
Тем не менее, это произведено ошибка «столбец не существует». И вот где я застрял. Не уверен, что это имеет значение, но при использовании выбора * запрос работает как предназначено. Хотя это не совсем вариант для того, что я собираюсь использовать запрос для.
Заранее спасибо за любые ответы.
Решение
Префикс неоднозначного имени столбца с табличкой:
SELECT t_arrangement.arrangement_ID, hva, dato
FROM tt_arrangement LEFT JOIN (tt_vaktliste_vakt)
ON (tt_arrangement.arrangement_ID = tt_vaktliste_vakt.arrangement_ID)
(предполагает, что HVA, DETO являются уникальными именами столбцов)
(Вы также можете использовать псевдонимы, но все равно надо префиксировать неоднозначные имена столбцов с псевдонимами)
Другие советы
Вам нужно дать имена своим таблицам псевдоним, как ниже.
SELECT a.arrangement_ID, a.hva, a.dato
FROM tt_arrangement AS a
LEFT JOIN tt_vaktliste_vakt AS v
ON (a.arrangement_ID = v.arrangement_ID)
Не уверены, что верхние линии правильно, так как я не знаю, что вы не знаете, какой столбец приходит от того, где.
Надеется, что это помогает.