我的数据库里有5个表
我要选择 V_CODE
在 V
哪些记录不共享 S
带的外键 F
当f_code='a'时。
我试过类似的方法
select distinct V_CODE
from V
inner join V_S VS on V.V_ID = VS.V_FK
inner join S on VS.S_FK = S.S_ID
where S._ID not in (
select FS.S_FK
from F
inner join F_S on F.F_ID = F_S.F_FK
where F.F_CODE = 'A'
);
但这并不是我想要的。有人能帮忙吗?提前谢谢。
表f
| F_ID | F_CODE |
| 1 | A |
| 2 | B |
| 3 | C |
表f\ s
| F_FK | S_FK |
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
表s
| S_ID | S_CODE |
| 1 | S1 |
| 2 | S2 |
| 3 | S3 |
表v\U s
| V_FK | S_FK |
| 1 | 1 |
| 1 | 2 |
| 2 | 3 |
| 3 | 1 |
| 3 | 3 |
表五
| V_ID | V_CODE |
| 1 | V1 |
| 2 | V2 |
| 3 | V3 |
在这种情况下,我只想回来 V2
因为这是表中唯一的记录 V
不共享表中的记录 S
当f\ U代码='a'
1条答案
按热度按时间ozxc1zmp1#
如果我理解正确,你想
v_code
那些没有f_code = 'A'
当您遵循表之间的关系时。对我来说,这意味着
not exists
: