【发布时间】:2018-04-02 15:46:00
【问题描述】:
我有 2 张桌子,试图将 inner join 放入一张桌子。我正在使用 Excel 进行查询,因此它的语法有限(Jet Access)。 stack1 和 stack2 表是相同的,并且位于两个不同的 Excel 工作表中。
这些表来自 Vertica(stack1 和 stack2)和 SQL Server(overflow),然后我正在尝试使用内部查询来组合这些表。
这是我尝试过的,我遇到了语法错误,不知道哪里出错了:
select *
from [stack1$], [stack2$]
INNER JOIN [overflow$]
ON [stack1$].[iddate] = [overflow$].[iddate]
AND [stack1$].[idbusiness] = [overflow$].[idbusiness]
AND [stack2$].[iddate] = [overflow$].[iddate]
AND [stack2$].[idbusiness] = [overflow$].[idbusiness]
如果我像这样只做一张桌子,它就可以正常工作:
select *
from [stack1$]
INNER JOIN [overflow$]
ON [stack1$].[iddate] = [overflow$].[iddate]
AND [stack1$].[idbusiness] = [overflow$].[idbusiness]
样本数据:
溢出:
+----------+------------+---------+
| iddate | idbusiness | otherid |
+----------+------------+---------+
| 20180209 | 95971462 | 5235 |
+----------+------------+---------+
堆栈 1:
+------------+-------+----------+
| idbusiness | value | iddate |
+------------+-------+----------+
| 95971462 | | 20180209 |
| 95971462 | | 20180209 |
| 95971462 | | 20180209 |
| 95971462 | | 20180209 |
| 95971462 | | 20180209 |
| 95971462 | | 20180209 |
| 95971462 | | 20180209 |
| 95971462 | 10.04 | 20180209 |
+------------+-------+----------+
上面的查询给了我:
+--------------------+-------+----------------+---------+
| stack1$.idbusiness | value | stack1$.iddate | otherid |
+--------------------+-------+----------------+---------+
| 95971462 | | 20180209 | 5235 |
| 95971462 | | 20180209 | 5235 |
| 95971462 | | 20180209 | 5235 |
| 95971462 | | 20180209 | 5235 |
| 95971462 | | 20180209 | 5235 |
| 95971462 | 10.04 | 20180209 | 5235 |
| 95971462 | | 20180209 | 5235 |
| 95971462 | | 20180209 | 5235 |
+--------------------+-------+----------------+---------+
现在我想在其中添加Stack 2,它将包含与stack1 相同的列,但与idbusiness 不同,然后在stack1 中。看起来也不需要iddate,所有记录都是相同的日期。
【问题讨论】:
-
底层数据库是什么?
-
@GordonLinoff ,这些表来自 Vertica(堆栈 1 和堆栈 2)和 SQL Server(溢出)然后我正在尝试内部查询来组合这些表。
标签: sql sql-server vertica jet