BQ SQL 与具有从查询派生的名称的 table 连接

BQ SQL join with a table with a name that is derived from a query

我有一些字段是日期。然后使用该日期查找 table,其名称与该字段的日期相对应。我正在进行连接以获取其他字段,但问题是如何将带有日期的字段视为可用于执行连接的变量。

示例查询如下:

with tab1 as (
    select 
        product_id, 
        start_date, 
    from `project.user.table`
) 

select * from tab1 inner join `project2.table2.{start_date}` as B on tab1.product_id = B.p_id

根据建议,我尝试了以下查询来收紧事情,但遗憾的是它不起作用。

with tab1 as (
    select 
        cast(product_id as INT64) as product_id_64, 
        cast(FORMAT_DATE('%Y%m%d', CAST(start_date AS DATE)) as STRING) as start_date_string
        
    from `project.user.table`
) 

select * from `user2.dataset.*` b
inner join tab1 
on b._TABLE_SUFFIX = tab1.start_date_string

导致以下错误:

Error running query. Cannot read field of type STRING as INT64 Field: GTIN

如果您的 table 是原生 BigQuery,您可以尝试测试并使用 wildcard:

WITH tab1 as (
    select 
        product_id, 
        start_date, 
    from `project.user.table`
)

SELECT * 
FROM `<yourproject>.<yourdataset>.*` b
INNER JOIN tab1
ON b._TABLE_PREFIX = tab1.start_date
AND b.p_id = tab1.product_id

不幸的是我无法测试