使用mysql查询主表有数据,副表0条数据的列表
SELECT * FROM `order` as a where 0=(select count(*) from goods_evaluate where order_id=a.id)
Thinkphp6的用法一:
Db::name('order')
->alias('a')
->whereRaw('0=(select count(*) from goods_evaluate where order_id=a.id)')
->select();
Thinkphp6的用法二 (使用模型):
Order::alias('a')->whereRaw('('.GoodsEvaluate::alias('f')->whereRaw('f.order_id = a.order_id')->fetchSql(true)->count().') = 0')->select();
同样我们使用这种方法也可以在查询的数据做计算例如 主表的 virtual_sale与sale相加计算 并命名为 sale,并查询副表的sale_price命名为price
$result = self::alias('a')
->where('id',$id)
->field('a.*,
(a.virtual_sale+a.sale) as sale,
('.GoodsSpecModel::alias('b')
->whereRaw