bigquery join 疑似别名问题
Suspected alias issue in bigquery join
我对 bigquery 比较陌生,我认为我遇到了别名问题,但无法弄清楚它是什么。本质上,我有两个 table,第一个 table 包含大部分所需信息,第二个 table 包含我需要加入的出生日期。我已经编写了以下查询,并且两个初始 SELECT 语句独立工作并且看起来 return 预期值。但是,当尝试加入两个 table 时,我收到一条错误消息:
Unrecognized name: t1_teams at [10:60]
WITH table_1 AS (SELECT competition_name, stat_season_name,
matchdata_Date, t1_teams.name, t1_players.Position, CAST(REGEXP_REPLACE(t1_players.uID, r'[a-zA-Z]', '') AS NUMERIC) AS Player_ID1, t1_players.First, t1_players.Last
FROM `prod.feed1`,
UNNEST(teams) AS t1_teams, UNNEST(t1_teams.Players) as t1_players),
table_2 AS (SELECT t2_players.uID AS Player_ID2, t2_players.stat_birth_date
FROM `prod.feed2`,
UNNEST(players) AS t2_players)
SELECT competition_name, stat_season_name, matchdata_Date, t1_teams.name, t1_players.Position, t1_players.uID, t1_players.First, t1_players.Last, t2_players.stat_birth_date
FROM table_1
LEFT JOIN table_2
ON Player_ID1 = Player_ID2
WHERE competition_name = "EPL"
AND stat_season_name = "Season 2018/2019"
如果我能在正确的方向上引导我,我将不胜感激,因为我对 bigquery 文档的阅读和其他搜索都是一片空白。
问题出在这里:
WITH table_1 AS (
SELECT
competition_name,
stat_season_name,
matchdata_Date,
-- this line
t1_teams.name,
...
您正在 selecting t1_teams.name
,因此您最终只有 name
来自 select 列表的输出列。如果你以后想参考t1_teams
,那么select那就是:
WITH table_1 AS (
SELECT
competition_name,
stat_season_name,
matchdata_Date,
-- this line
t1_teams,
...
我对 bigquery 比较陌生,我认为我遇到了别名问题,但无法弄清楚它是什么。本质上,我有两个 table,第一个 table 包含大部分所需信息,第二个 table 包含我需要加入的出生日期。我已经编写了以下查询,并且两个初始 SELECT 语句独立工作并且看起来 return 预期值。但是,当尝试加入两个 table 时,我收到一条错误消息:
Unrecognized name: t1_teams at [10:60]
WITH table_1 AS (SELECT competition_name, stat_season_name,
matchdata_Date, t1_teams.name, t1_players.Position, CAST(REGEXP_REPLACE(t1_players.uID, r'[a-zA-Z]', '') AS NUMERIC) AS Player_ID1, t1_players.First, t1_players.Last
FROM `prod.feed1`,
UNNEST(teams) AS t1_teams, UNNEST(t1_teams.Players) as t1_players),
table_2 AS (SELECT t2_players.uID AS Player_ID2, t2_players.stat_birth_date
FROM `prod.feed2`,
UNNEST(players) AS t2_players)
SELECT competition_name, stat_season_name, matchdata_Date, t1_teams.name, t1_players.Position, t1_players.uID, t1_players.First, t1_players.Last, t2_players.stat_birth_date
FROM table_1
LEFT JOIN table_2
ON Player_ID1 = Player_ID2
WHERE competition_name = "EPL"
AND stat_season_name = "Season 2018/2019"
如果我能在正确的方向上引导我,我将不胜感激,因为我对 bigquery 文档的阅读和其他搜索都是一片空白。
问题出在这里:
WITH table_1 AS (
SELECT
competition_name,
stat_season_name,
matchdata_Date,
-- this line
t1_teams.name,
...
您正在 selecting t1_teams.name
,因此您最终只有 name
来自 select 列表的输出列。如果你以后想参考t1_teams
,那么select那就是:
WITH table_1 AS (
SELECT
competition_name,
stat_season_name,
matchdata_Date,
-- this line
t1_teams,
...