#sql #hana
#sql #hana
Вопрос:
У меня есть таблица транзакций инвентаризации Transaction_Log
Столбцы log_id
, to_warehouse
, from_warehouse
, оба ВНЕШНИХ ключа ссылаются на таблицу хранилища OWHS
со столбцами whs_id
, whs_name
Мне нужно вывести данные с помощью этих столбцов: log_id
, to_warehouse_name
, from_warehouse_name
Пробовал это
SELECT t.log_id, w1.whs_name AS to_warehouse_name, w2.whs_name from_warehouse_name
FROM OWHS w1, OWHS w2
INNER JOIN Transaction_Log t ON w1.whs_id = t.to_warehouse AND w2.whs_id = t.from_warehouse
но это выдает ошибку
недопустимое имя таблицы: w1.whs_id
Я не уверен, корректен ли запрос для вывода того, что я хочу, но ошибка уже сбивает меня с толку.
Я использую базу данных SAP HANA, но я немного изменил имена столбцов для этого сообщения. Я также возвращаюсь к программированию баз данных через несколько лет, поэтому прошу прощения, если это основной вопрос, но мой поиск в Google не возвращает ничего близкого к тому, что я хочу.
Ответ №1:
Никогда не используйте запятые в FROM
предложении. Точка. Запишите запрос как:
SELECT t.log_id, w1.whs_name AS to_warehouse_name, w2.whs_name from_warehouse_name
FROM OWHS w1 JOIN
Transaction_Log t
ON w1.whs_id = t.to_warehouse JOIN
OWHS w2
ON w2.whs_id = t.from_warehouse;
Хотя вы также могли бы решить проблему, заменив на ,
, CROSS APPLY
что просто сбивает с толку логику. Вы ищете два простых JOIN
s.