Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 带3个表的左联接查询多次带来同一行_Sql_Google Bigquery - Fatal编程技术网

Sql 带3个表的左联接查询多次带来同一行

Sql 带3个表的左联接查询多次带来同一行,sql,google-bigquery,Sql,Google Bigquery,有了这个疑问 select google_ads.date, oh_db.customer_name, linkedin.cost as linkedin_cost, google_ads.cost as google_ads_cost from `oh-data-pipeline`.`staging_benjamin`.`oh_customers` as oh_db left join `oh-data-pipeline`.`staging_benjamin

有了这个疑问

select 
    google_ads.date,
    oh_db.customer_name,
    linkedin.cost as linkedin_cost,
    google_ads.cost as google_ads_cost
from `oh-data-pipeline`.`staging_benjamin`.`oh_customers` as oh_db

left join `oh-data-pipeline`.`staging_benjamin`.`linkedin` as linkedin
    on oh_db.linkedin_account_id = linkedin.account_id

left join `oh-data-pipeline`.`staging_benjamin`.`google_ads` as google_ads
    on oh_db.google_ads_id = google_ads.customer_id

order by google_ads.date desc
我得到以下结果,这是不可能的,因为我应该只有一个唯一的记录,而不是76次相同

我做错了什么

我从这个数据库查询:每天每个客户查询1行

还有那个数据库:每个客户每天1行。


注意:我没有得到正确的“成本”值。

您仅在
帐户id上执行
加入
就成扇形了。
每个
账户id
的每一行都与每个日期和每个表的所有行连接在一起

尝试在
on…
子句中添加
和table_1.date=table_2.date

如果它不起作用,我可以帮助您稍后重写查询


要了解更多关于结果的非故意的信息,由于您加入表格的方式,请查看Looker

若你们仔细看,你们会发现整行并不是重复的。尤其是最后一个。但是,对于前两行,可以使用
DISTINCT
。这不是因为连接是外部连接。这只是连接的一个特性。这就是它们的工作原理。谢谢!我已经编辑了这个问题,我会更清楚。我只从两个表中查询,每个表都有一个特定的日期、一个帐户ID和一个成本。有线索吗?谢谢!我是sql新手,现在我不能在连接上执行和。。。非常感谢你。我被卡住了!