Ошибка (Error Code: 1054. Unknown column 'G_CODE.table1' in 'field list')
Буду признателен помощи.
2 таблицы:
И
Задача: получить все товары с штрих-кодами с началом действия в 2010 году.
Мой код:
SELECT G_CODE.table1, F_NAME.table1, EAN.table2
FROM table1, table2
JOIN table2 AS t2 ON G_CODE.table1 = G_CODE.t2
WHERE year(DATE_BEGIN.t2) = 2010;
Получаю ошибку:"Error Code: 1054. Unknown column 'G_CODE.table1' in 'field list' "
Не пойму где надо исправить, ведь данное поле(G_CODE.table1) есть.
Ответы (1 шт):
Операция "запятая", являясь аналогом CROSS JOIN, имеет более низкий приоритет, чем явные JOIN. Соответственно, если расставить скобки с учётом приоритетов, запрос выглядит так:
SELECT G_CODE.table1, F_NAME.table1, EAN.table2
FROM table1,
( table2
JOIN table2 AS t2 ON G_CODE.table1 = G_CODE.t2
)
WHERE year(DATE_BEGIN.t2) = 2010;
Очевидно, что внутри скобок никакие ссылки на внешнюю для выражения в скобках таблицу table1 - не видны.
Это даже без учёта путаницы имён объектов (правильно - таблица.поле, но никак не поле.таблица), что хорошо описано в комментариях к вопросу.

