比如,数据库表(T)里有如下数据
id name pwd
1 aaa asdfa98
2 bbb asdf989
5 ccc asdjf283
6 eee alsdfj32
7 rrr alsjf232我写如下SQL:
select * from T where id in (1, 2, 3, 4);那么现在的输出结果应该为:
id name pwd
1 aaa asdfa98
2 bbb asdf989但是, 我现在的需求是需要输出
id name pwd
1 aaa asdfa98
2 bbb asdf989
3 null null
4 null null就是说, 虽然in里面的条件有的表里面是不存在的,但是我还是需要在输出时, 把查询条件输出,内容不存在的补空,这个如何在SQL里直接实现?
id name pwd
1 aaa asdfa98
2 bbb asdf989
5 ccc asdjf283
6 eee alsdfj32
7 rrr alsjf232我写如下SQL:
select * from T where id in (1, 2, 3, 4);那么现在的输出结果应该为:
id name pwd
1 aaa asdfa98
2 bbb asdf989但是, 我现在的需求是需要输出
id name pwd
1 aaa asdfa98
2 bbb asdf989
3 null null
4 null null就是说, 虽然in里面的条件有的表里面是不存在的,但是我还是需要在输出时, 把查询条件输出,内容不存在的补空,这个如何在SQL里直接实现?
from (
select 1 as id
union all
select 2
union all
select 3
union all
select 4
union all
select 5
union all
select 6
union all
select 7
) a left join t on a.id=t.id
where a.id in (1, 2, 3, 4);