oracle - Oracle 唯一记录检索
问题描述
有以下三个表格,如下所述:
SELECT * FROM Users;
UserID UserName
1 Ramesh
2 Suresh
SELECT * FROM UserAddress;
UserAddressID UserID Address
1 1 South St
2 1 North St
3 2 New St
SELECT * FROM UserDegree;
UserDegreeID UserID Degree
1 1 BSC
2 2 B.Tech
3 2 M.Tech
我需要如下所示的输出,
UserID UserName UserAddressID UserID Address UserDegreeID UserID Degree
1 Ramesh 1 1 South St 1 1 BSC
NULL NULL 2 1 North St NULL NULL NULL
2 Suresh 3 2 New St 2 2 B.Tech
NULL NULL NULL NULL NULL 3 2 M.Tech
谁能帮助我在不使用任何循环的情况下获得此输出?
解决方案
这是连接到所有三个表的 SQL,希望能解决您的问题。
select u.userid,
u.username,
a.useraddressid,
a.userid as userid2,
a.address,
d.userdegreeid,
d.userid as userid3,
d.degree
from users u
join useraddress a on (u.userid = a.userid)
join userdegree d on (u.userid = d.userid);
在这里,在“UserID”字段上加入SQL,因此不需要从所有表中选择“userid”,它将相同的记录。所以,无论你想在哪里使用这个“userid”,你都可以在应用程序中引用相同的“userid”。在下面的 SQL 中,我删除了重复的“userid”。
select u.userid,
u.username,
a.useraddressid,
a.address,
d.userdegreeid,
d.degree
from users u
join useraddress a on (u.userid = a.userid)
join userdegree d on (u.userid = d.userid);
推荐阅读
- javascript - 基于 Canvas 中的字符串动态更改文本
- c++ - 不带头指针的删除
- api - 这个响应是什么内容类型?
- c# - c# Objectlistview 删除带索引的对象
- javascript - Angular 4:请求在浏览器中被取消但在邮递员中工作
- node.js - 使用身份验证,因此用户只能使用 mongodb 和 node js 看到自己的数据
- linux-kernel - 为什么系统调用返回 -1 而不是实际的错误代码
- javascript - Magento 2. 动态添加 ui-form 元素(在管理区域)
- azure - 依赖注入容器是否在一个包中的 azure 函数之间共享?
- c# - 移交新代码库时安装所有正确版本的软件包?