【问题标题】:Left join of various queries各种查询的左连接
【发布时间】:2016-06-28 17:19:08
【问题描述】:

我目前正在开发 Tableau 软件,需要执行自定义 SQL 查询。

我目前有两个表,每个表都是 SQL 查询的结果。

表 1:

Select * 
from AA 
left join BB on AA.id = BB.id

表 2:

Select * 
from CC 
inner join DD on CC.brandId=DD.brandId 
where CC.Year between year(getdate())-4 and year(getdate()) 
      and CC.productCategoryId  = 'Category 1')

我想做一个查询:

最终查询:

Select * 
from TABLE 1 
LEFT JOIN Table 2 on AA.id = CC.id (both have id)

但我不工作。 SQL 管理服务器在最终查询的 LEFT JOIN 上给了我一个错误,我不明白为什么......就像它不允许我创建左连接(表 1 和 2 的请求都可以正常工作,它是添加它们不起作用)。

有什么想法吗?? :) 提前谢谢!

【问题讨论】:

  • 你遇到了什么错误?
  • 将表 1 替换为 AA,将表 2 替换为 CC。
  • 嗨,A,我刚刚收到错误消息“关键字'left'附近的语法不正确”...嗨,dcp,我需要从 AA left join BB 和 CC left join DD 获取信息。 AA left join CC 不会给我所有我需要的信息。
  • 不要认为这很容易,因为 table 1 不是有效名称,并且有两列名为 id 表 2 也是如此
  • Select * from [TABLE 1] AA LEFT JOIN [Table 2] CC on AA.id = CC.id

标签: sql sql-server left-join ssms tableau-api


【解决方案1】:

既然您将 AA 中的结果放入了一个名为 Table 1 的新表中,并且同样从 CC 中放入了表 2,那么查询 AA.id=CC.id 是没有意义的。 尝试类似 [Table 1].id=[Table 2].id

【讨论】:

  • 嗨,Marius,非常感谢。如何指定 [Table1].id?目前我基本上只是在我的最终查询中插入表 1 的 SQL 查询。所以我没有查询的名称。我这样做是为了放入 Tableau 软件自定义 SQL 请求,所以我不确定命名是否适用。
  • 我不知道 Tableau,但您可以尝试嵌套查询:
  • 我不知道 Tableau,但您可以尝试嵌套查询: Select * from (Select * from AA left join BB on AA.id = BB.id) Tbl1 left join (Select *从 CC 内部加入 DD 在 CC.brandId=DD.brandId 上 CC.Year 在 year(getdate())-4 和 year(getdate()) 和 CC.productCategoryId = 'Category 1')) Tbl2 on Tbl1.id = Tbl2.id 逻辑是:select 创建一个临时表,我们现在将其别名为 Tbl1 和 Tbl2,然后执行查询。
  • 嗨,Marius,非常感谢,我会试一试!尽管我怀疑 Tableau 是否允许嵌套临时表。我认为它只允许基本的选择查询
  • 乐于助人。你认为你可以支持我的解决方案吗?我需要一些积极的反馈..
猜你喜欢
  • 1970-01-01
  • 2011-03-20
  • 2015-09-13
  • 2015-09-17
  • 2021-12-25
  • 2017-06-30
  • 2017-12-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多