如何从一个表中选择一行,但如果它不存在,则回退到从辅助表中选择它?这是我想要实现的简化版本
create table table_1 (
person TEXT,
favourite_number INT
);
create table table_2 (
person TEXT,
favourite_number INT
);
insert into table_1 (person, favourite_number) values
('Bob', 1),
('Fred', 2)
;
insert into table_2 (person, favourite_number) values
('Bob', 30),
('Alice', 70)
;
Run Code Online (Sandbox Code Playgroud)
我想得到以下结果:
| person | favourite_number |
|--------|------------------|
| Bob | 1 |
| Alice | 70 |
| Fred | 2 |
Run Code Online (Sandbox Code Playgroud)
注意它如何从第一个表中选择 Bob 和 Fred。即使鲍勃出现在第二张桌子上,因为我们已经拿到了他,我们还是把他从第一张桌子上拿走了。Alice 只出现在第二个表中。
到目前为止,这是我尝试过的,但我无法让所有 3 个返回,请帮助。
select
t1.*
from table_1 t1
where t1.person not in …
Run Code Online (Sandbox Code Playgroud)