背景:tp5 A,B两表join链表查询,查出B表数据为空的A表数据 以及 B表数据不为空的A表数据
此操作将使用到 EXP 和 IS NULL
查出B表数据为空的A表数据SQL
$where[] = ['exp',Db::raw("b.id IS NULL")];$list = db('table1')->alias('a')->join('table2 b', 'a.id = b.a_id', 'left')->field('a.*,b.a_id')->where($where)->select();
B表数据不为空的A表数据SQL
$where[] = ['exp',Db::raw("b.id IS NOT NULL")];$list = db('table1')->alias('a')->join('table2 b', 'a.id = b.a_id', 'left')->field('a.*,b.a_id')->where($where)->select();