Ошибка (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 шт):

Автор решения: Akina

Операция "запятая", являясь аналогом 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 - не видны.


Это даже без учёта путаницы имён объектов (правильно - таблица.поле, но никак не поле.таблица), что хорошо описано в комментариях к вопросу.

→ Ссылка