两个如何在Oracle SQL中连接两个表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个如何在Oracle SQL中连接两个表相关的知识,希望对你有一定的参考价值。
我是Oracle SQL的新手,我需要以下方面的帮助:
假设我有一张一年中所有周的表格,例如:
ID_WEEK_YR
----------
2018011
2018012
2018013
...
2018124
另一张桌子上的产品销售仅在一年中的某几周
ID_PRODUCT ID_WEEK_YR SALES
---------- ---------- -------
TOY#1 2018083 5
TOY#1 2018051 3
TOY#1 2018043 1
我需要加入表格才能获得如下内容:
ID_PRODUCT ID_WEEK_YR SALES
---------- ---------- -------
TOY#1 2018011 null
TOY#1 2018012 null
TOY#1 2018013 null
...
TOY#1 2018043 5
...
TOY#1 2018051 1
...
TOY#1 2018083 3
...
TOY#1 2018124 null
应用Oracle SQL中的典型JOIN可能性,通过密钥ID_WEEK_YR加入,我再次获得第二个表
SELECT
A11.ID_WEEK_YR,
A12.ID_PRODUCT
FROM
WEEKS_YR A11
JOIN SALES_U_YR A12
ON (A11.ID_WEEK_YR=A12.ID_WEEK_YR)
WHERE a12.ID_PRODUCT='TOY#1';
提前致谢
答案
您似乎接近解决方案,您只需要将(INNER)JOIN转换为LEFT(OUTER)JOIN。此外,左连接表上的所有条件都必须放在ON子句而不是WHERE子句中。
SELECT
'TOY#1',
A11.ID_WEEK_YR,
A12.SALES
FROM
WEEKS_YR A11
LEFT JOIN SALES_U_YR A12
ON A11.ID_WEEK_YR=A12.ID_WEEK_YR
AND A12.ID_PRODUCT='TOY#1'
;
以上是关于两个如何在Oracle SQL中连接两个表的主要内容,如果未能解决你的问题,请参考以下文章