其他表中具有父子关系的父的 SQL 状态

分析师_J

在表 1 中,我有状态记录。

钥匙 地位 组合 家长
键1 A B C D 1 0
键2 A B C D 1 0
关键3 XYZ 1 0
关键4 XYZ 1 1
key5 QWERT 1 1
关键6 A B C D 0 0

在表 2 中,我有父子关系

钥匙 父键 查看
键1 关键4 一种
键2 关键4
关键3 key5 一种
关键4 关键4
key5 key5 一种

我正在寻找的结果是带有 ParentStatus 的表。但仅当 Table1.Combi = 1 且 Table1.Parent = 0 且 Table2.Check = A 时。像这样:

钥匙 父母身份
键1 XYZ
键2
关键3 QWERT
关键4
key5
关键6
肯德尔

我们可以使用check_ = 'A'join条件等条件。如果我们使用 where 那么这些行将不会被返回。

create table table1 (key_ varchar(10), status varchar(10), combi int, parent int);
insert into table1 values
('key1','ABCD',1,0),
('key2','ABCD',1,0),
('key3','XYZ',1,0),
('key4','XYZ',1,1),
('key5','QWERT',1,1),
('key6','ABCD',0,0);

create table table2(key_ varchar(10), ParentKey varchar(10), Check_ char);
insert into table2 values
('key1','key4','A'),
('key2','key4','B'),
('key3','key5','A'),
('key4','key4','B'),
('key5','key5','A');
select 
  t.key_,
  ttt.status Parent_Status
from table1 t 
left join table2 tt 
on t.key_ = tt.Key_ and Check_ = 'A' and parent = 0
left join table1 ttt
on tt.ParentKey = ttt.key_ and t.combi = 1
关键_ | 父状态
:--- | :------------ 
key1 | XYZ          
键2 |          
键3 | QWERT         
key4 |          
键5 |          
键6 | 空值         

db<>在这里摆弄

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章