sql - 无法使用 SQL/Bigquery JOIN 获取两条记录

标签 sql google-bigquery

我有一个返回订单详细信息的查询,我想从 briisk 表中获取它找到的交易的信息。我也希望它能够显示订单,即使 briisk table 什么也没有。
如果我添加最后一行(以及 flostream.briisk.master = ""),我的查询仅返回一个结果,而不是两个。

SELECT *
FROM (SELECT orderno,ifnull(dealid,sales_rule) as DealIDCombo from flostream.orders left join  mobileheads.surveys on mobileheads.surveys.order_number = flostream.orders.externalreference) as first
INNER JOIN flostream.orders on first.orderno = flostream.orders.orderno
LEFT JOIN flostream.briisk on first.dealidcombo = flostream.briisk.uniquereference
WHERE first.orderno in (359692,359683)
//AND flostream.briisk.master = ""

最佳答案

当您使用左外连接时,您需要在on子句中包含第二个表的过滤条件。所以试试这个:

SELECT *
FROM (SELECT orderno,ifnull(dealid,sales_rule) as DealIDCombo
      from flostream.orders left join
           mobileheads.surveys
           on mobileheads.surveys.order_number = flostream.orders.externalreference
     ) as first INNER JOIN
     flostream.orders
     on first.orderno = flostream.orders.orderno LEFT JOIN
        flostream.briisk
     on first.dealidcombo = flostream.briisk.uniquereference AND
        flostream.briisk.master = ""
WHERE first.orderno in (359692, 359683)

第一个表的条件应放在 WHERE 子句中。

关于sql - 无法使用 SQL/Bigquery JOIN 获取两条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27487227/

相关文章:

google-bigquery - 访问 Google Sheets 联合表时的 BigQuery 凭据问题

google-bigquery - BigQuery 嵌套字段 : column units of type ARRAY cannot be used in SELECT DISTINCT

sql - 上个月的最后一天 - BigQuery

hadoop - 在计算 Google bigquery 中的列大小时,列名长度是否计入每个单元格大小?

PHP 和 SQL 空间问题

php - 从数据库中选择日期时间

sql - 克隆一条记录,然后使用它的自动递增 id 进行进一步的操作

sql - 缺少数据的窗口函数

R 中类似 SQL 的功能

sql - 像SQL一样设计Redis数据库表?