表连接BigQuery

时间:2017-03-23 17:29:28

标签: go database-design google-bigquery

你知道是否有办法加入两个表格,因为 例如,使用像MySQL这样的外键约束(我似乎没有 找到任何关于这个)?如果没有,是否有替代品?

谢谢!

2 个答案:

答案 0 :(得分:1)

我将您的问题解释如下 -

  

有没有办法将tableX上可以使用的值限制为仅tableY上存在的ID?例如,通过使用MySQL中的外键约束!

BigQuery没有为此提供任何直接机制 但你可以自己轻松实现这一目标。

例如,假设您需要向tableX插入一些数据,但是您希望确保仅在id新数据位于tableY的{​​{1}}处插入那些行

因此,您可以通过以下查询“强制执行”此操作

  
#standardSQL
SELECT n.*
FROM newData AS n
JOIN tableY AS y
ON n.id = y.id

...您可以使用tableX作为目标运行此查询,并且只会插入所需的行

希望你有个主意

您还可以查看现有的相关功能请求 -
https://issuetracker.google.com/issues/35906045
https://issuetracker.google.com/issues/35906043

答案 1 :(得分:0)

既然你问了两个问题(Stack Overflow建议每个问题提出1个问题),我会回答一个问题:

  

另外,你知道是否有办法加入两个表格,例如,   使用外键

在BigQuery中,您可以通过任意键连接表 - 即使是动态定义的键(当您需要连接来自选择以不同方式编码相同值的不同数据集的两个表时,这非常有用)。

为什么需要外键才能进行这些连接?