思路
利用只有一行的表左关联或有关联强制生成一条null记录
select 需要查询的数据 from 只有一行的表 left join 查询的表 on 1=1;
各数据库获取只有一行的表的方法
- mysql
select 1;
- oracle
dual
实例
编写一个 SQL 查询,获取 person 表中age为30的id,如果不存在age为30,那么查询应返回 null 。
id | age |
1 | 20 |
- mysql
select t2.id from ( select 1) t1 left join ( select id from person where age = 30) t2 on 1 = 1;
- oracle
select t1.id from dual left join ( select id from person where age = 30) t1 on 1 = 1;