You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BigQuery中基于字段条件筛选后追加另一表记录的实现方法

在BigQuery中合并表并排除指定行

你可以通过两种方式实现需求:在t2的查询中过滤掉那些column2存在于t1中column1='X'对应的column2集合里的行。

方法一:使用NOT IN子查询

直接在t2的SELECT语句后添加WHERE条件,排除符合条件的行:

SELECT
  t1.column1, 
  t1.column2, 
  t1.column3
FROM
  `project.database.table1` as t1
UNION ALL
SELECT
  t2.column1, 
  t2.column2, 
  t2.column3
FROM
  `p21-project.database.table2` as t2
WHERE
  t2.column2 NOT IN (
    SELECT column2 
    FROM `project.database.table1` 
    WHERE column1 = 'X'
  )

方法二:使用LEFT JOIN排除匹配行

通过LEFT JOIN关联t2和t1中符合条件的行,只保留没有匹配到的t2行:

SELECT
  t1.column1, 
  t1.column2, 
  t1.column3
FROM
  `project.database.table1` as t1
UNION ALL
SELECT
  t2.column1, 
  t2.column2, 
  t2.column3
FROM
  `p21-project.database.table2` as t2
LEFT JOIN (
  SELECT DISTINCT column2 
  FROM `project.database.table1` 
  WHERE column1 = 'X'
) as filter_t1
ON t2.column2 = filter_t1.column2
WHERE filter_t1.column2 IS NULL

说明

  • 两种方法都能实现需求,若t1中column1='X'对应的column2有重复值,方法二中的DISTINCT可以减少关联次数,提升性能。
  • 注意替换语句中的'X'为实际需要匹配的具体值。

内容的提问来源于stack exchange,提问作者Giacomo F

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 11:52:08