在表 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] 删除。
我来说两句