Проблема заключается в том, что вы не выбираете поле _PARTITIONDATE
из table_2
при присоединении к нему, чтобы оно не могло его распознать:
SELECT user_id, city_name FROM table_2
Чтобы решить его, вы можете добавить его какследует:
SELECT
DISTINCT DATE(create_time) AS date,
user_id,
city_name,
transaction_id,
price
FROM
table_1 a
LEFT JOIN (SELECT _PARTITIONDATE AS pd, user_id, city_name FROM table_2) b
ON (a.user_id = b.user_id AND DATE(create_time) = pd)
Обратите внимание, что вам понадобится псевдоним, например pd
, так как это псевдостолбец
Вероятно, он работал в прошлом, если вы соединяли две таблицы напрямую, например:в (вы не получаете преимуществ избирательности в этом случае):
FROM
table_1 a
LEFT JOIN table_2 b
ON (a.user_id = b.user_id AND DATE(create_time) = _PARTITIONDATE)