我有一个db2查询,今天我意识到需要扩展该查询。
我的表使用联接已经相当复杂了,所以我并不想添加联合查询。我想做一个完整的外部连接。
SELECT a.id ,a.city ,a.state ,case when a.thing = b.thing then a.thing else b.thing end ,sum( case when c.thing = 'thing' then 1 else 0 end) ,b.id ,b.name FROM a INNER JOIN b -- I want to change this to FULL OUTER JOIN ON a.id = b.id LEFT JOIN c ON a.id = c.id LEFT JOIN (d INNER JOIN e ON d.id = e.id ) WHERE --logic GROUP BY --for the aggregate functions ORDER BY --logic
我想是因为另一个左联接。
它可能无法将外部联接与左侧联接组合在一起。您可能必须将外部联接设置为子查询(还添加了一些丢失的别名和ON子句):
SELECT
ab.a_id
,ab.city
,ab.state
,ab.thing
,sum( case when c.thing = 'thing' then 1 else 0 end)
,ab.b_id
,ab.name
FROM
(
SELECT
a.id a_id
,a.city
,a.state
,case when a.thing = b.thing then a.thing else b.thing end thing
,b.id b_id
,b.name
FROM
a
FULL OUTER JOIN b
ON a.id = b.id
) ab
LEFT JOIN c
ON ab.id = c.id
LEFT JOIN (d
INNER JOIN e
ON d.id = e.id
) f
ON ...
WHERE
--logic
GROUP BY
--for the aggregate functions
ORDER BY
--logic
问题内容: 如果html文件是本地文件(在我的C驱动器上),则可以使用,但是如果html文件在服务器上并且图像文件是本地文件,则无法使用。这是为什么? 任何可能的解决方法? 问题答案: 如果客户端可以请求本地文件系统文件,然后使用JavaScript找出其中的内容,则将是一个安全漏洞。 解决此问题的唯一方法是在浏览器中构建扩展。Firefox扩展和IE扩展可以访问本地资源。Chrome的限制更为严
如何强制spark中数据包的完全外部联接以使用Boradcast散列联接?下面是代码片段: 但是,当我使用“”作为联接类型时,spark出于某种未知原因决定使用。有人知道怎么解决这个问题吗?根据我在左外部联接中看到的性能,将有助于加快应用程序的速度。
这是一个关于data.table连接语法的哲学问题。我发现越来越多的数据.表的用途,但仍在学习... data.tables的联接格式非常简洁、方便和高效,但据我所知,它只支持内部联接和右外部联接。要获得左或完全的外部联接,我需要使用: --Y中的所有行--右外部联接(默认) --仅限在X和Y中都匹配的行--内部联接 --来自X和Y的所有行--完全外部联接 --X中的所有行--左外部联接 在我看来
创建jar文件时,我编写了以下java文件: 我将文件命名为MyClass.java。 我通过键入“javac src/main/java/myjar/myclass.java”创建了一个类文件 我通过命令“jar cvf myjar.jar src/main/java/myjar/myclass.class”生成了一个jar文件 在IDE中,我写了“import myjar.myclass”,单
问题内容: 我正在构建一个小型应用程序,并在表之间建立外键关系。但是我对为什么我真的需要这个感到困惑?有什么好处- 在编写不需要执行任何联接的查询时,它对我有帮助吗?这是我的数据库的示例片段: 两者之间存在关键关系。和。 我可以执行这样的查询吗? 既然MySQL应该知道表之间的关系?如果不是,那么外键在数据库设计中的真正功能是什么? 问题答案: 外键提供引用完整性。外键列中的数据经过验证-该值只能