Скорее всего, ошибка, которую вы получаете, выглядит примерно так:
Duplicate column names in the result are not supported. Found duplicate(s): name
Устаревший SQL корректирует trafficker.name
и salesperson.name
в вашем операторе SELECT соответственно trafficker_name
и salesperson_name
, тем самым эффективно устраняя столбецдублирование имен
Стандартный SQL ведет себя по-разному и обрабатывает оба этих столбца с именем name
, что приводит к случаю дублирования.Чтобы избежать этого - вам просто нужно предоставить псевдонимы, как в примере ниже
SELECT
lineitem.*,
proposal_lineitem.*,
porder.*,
company.*,
product.*,
proposal.*,
trafficker.name AS trafficker_name,
salesperson.name AS salesperson_name,
rate_card.*
FROM ( ...
Вы можете легко проверить выше объясненное, используя ниже упрощенные / фиктивные запросы
#legacySQL
SELECT
porder.*,
trafficker.name,
salesperson.name
FROM (
SELECT 1 order_id, 'abc' order_name, 1 trafficker_id, 2 salesperson_id
) porder
LEFT JOIN (SELECT 1 id, 'trafficker' name) trafficker
ON porder.trafficker_id =trafficker.id
LEFT JOIN (SELECT 2 id, 'salesperson' name ) salesperson
ON porder. salesperson_id =salesperson.id
и
#standardSQL
SELECT
porder.*,
trafficker.name AS trafficker_name,
salesperson.name AS salesperson_name
FROM (
SELECT 1 order_id, 'abc' order_name, 1 trafficker_id, 2 salesperson_id
) porder
LEFT JOIN (SELECT 1 id, 'trafficker' name) trafficker
ON porder.trafficker_id =trafficker.id
LEFT JOIN (SELECT 2 id, 'salesperson' name ) salesperson
ON porder. salesperson_id =salesperson.id
Примечание: если у вас есть больше повторяющихся имен - вам также нужно присвоить им всем псевдоним