sql - 在两个表上结合 INNER 和 OUTER JOIN
问题描述
我有两个表,每个表在 Oracle 中都有 table_name 和 column_name。我试图加入 table_name 但想在 column_names 上留下外部联接。我尝试了所有方法,但未能写出正确的方法。请指教。
Table A and B
------------------
table_name
column_name
因此,表 A 将包含条目;
table_name, column_name
AAA, Col1
AAA, Col2
AAA, col3
而表 B 将有条目;
table_name, column_name
AAA, Col1
AAA, col2
理想情况下,sql有点像这样;
select A.TABLE_NAME, A.COLUMN_NAME, B.COLUMN_NAME
from
cert2_all_tab_columns A,
ITF_SYNAPSE B
WHERE
A.TABLE_NAME = B.TABLE_NAME AND
A.COLUMN_NAME (+)= B.COLUMN_NAME AND
A.TABLE_NAME='ABC'
所以期望的结果将是;
table_name, column_name_fromA, column_name_fromB
AAA, col1, col1
AAA, col2, col2
AAA, col3, null
解决方案
此查询有效。我的语法正确吗?
select TABLE_NAME,C1, C2
from
(SELECT TABLE_NAME, COLUMN_NAME, COLUMN_NAME AS C1 FROM A) A
LEFT JOIN
(SELECT TABLE_NAME, COLUMN_NAME, COLUMN_NAME AS C2 FROM B) B
USING (TABLE_NAME, COLUMN_NAME);
推荐阅读
- java - 在哪里可以找到与 Java 中 Go 的 EncryptRSAOAEP() 功能等效的功能?
- php - 如何将根名称和子名称添加到 drupal 视图 REST?
- python - Errno 2 没有这样的文件或目录:“数据集”
- php - 如何避免帖子因条件而被移至垃圾箱?
- javascript - 将道具从 App 类传递给 const 函数 React Typescript
- caching - 如果 package.json 更改,如何使 Bitbucket 的 Pipeline 节点缓存失效
- java - 将 maven 包从 nexus 迁移到 gitlab 包注册表
- conv-neural-network - DenseNet 结果零计划
- node.js - NodeJS Express - TypeError:将循环结构转换为 JSON
- c# - 谁能向我解释如何使用 Func
? validateValue = null) Xamarin 社区工具包 ObservableObject 中的验证?