java - Oracle sql join 与 3 个表
问题描述
lk_state 表
id desc
MD Maryland
FL Florida
VA Virginia
NY NewYork
NJ NewJersy
CA California
用户表
user_ID Name Active State
01 AAA 1 MA
02 BBB 1 MD
03 CCC 1 CA
04 DDD 1 NY
05 EEE 1 NJ
06 FFF 1 FL
07 GGG 1 FL
users_groups 表
id group
01 10
02 20
03 20
04 30
05 20
06 10
07 20
我想加入这些表,这些表将为我提供 lk_state 表中的状态输出。条件是仅显示用户属于角色=20 的那些状态
输出应该是
id desc
MD Maryland
FL Florida
NJ NewJersy
CA California
我尝试加入,但它为每个用户和组提供了多行。请帮助我根据需要显示一个 oracle sql。
解决方案
您可以使用exists
和相关的子查询:
select s.*
from lk_states s
where exists (
select 1
from users u
inner join user_groups ug on ug.id = u.user_id
where u.state = s.id and ug.group = 20
)
推荐阅读
- bluetooth-lowenergy - 低功耗蓝牙特性写入响应
- javascript - regex for getting html element having class name beginning with specific word in javascript
- php - 如何在 PHP 中组合这两个数组?
- django - 如何重构两个匹配的 Django 查询集
- python - 无法让 python 文件并行运行 2 个其他 python 文件
- scala - 如何将上传的文件复制到公用文件夹中?
- c++ - 对具有 std::map 的类无效使用不完整类型
成员 - python - 发生特定帧时使用ntlk sum up attributes
- c# - 有没有办法将像这样的双精度 - 1.2676506002282294E+30 转换为常规的“非指数”符号
- r - 在R中以顺序方式从具有最大值的列中减去