背景: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();