db.Model("? as u", db.Model("users").Fields("name", "age")).Where("age", 18).Scan(&users)
// SELECT * FROM (SELECT `name`,`age` FROM `users`) as u WHERE `age` = 18
subQuery1 := db.Model("users").Fields("name")
subQuery2 := db.Model("pets").Fields("name")
db.Model("? as u, ? as p", subQuery1, subQuery2).Scan(&users)
// SELECT * FROM (SELECT `name` FROM `users`) as u, (SELECT `name` FROM `pets`) as p
3 Comments
xx
有没EXISTS的子查询?比如像这个查询某日新增付费用户数的sql语句
SELECT COUNT(1) FROM payment_order p WHERE created_at between '2021-06-09 00:00:00' and '2021-06-09 23:59:59' AND `status`=1 AND NOT EXISTS (SELECT DISTINCT uid from payment_order pp WHERE created_at < "2021-06-09 00:00:00" AND p.uid=pp.uid )
郭强
暂时没有快速方法,你可以这样:
xx
谢谢大佬已经可以了,之前用dao.PaymentOrder.Where一直子查询报错,用g.Model("paument_order",“p”).Where就可以了;
不过大佬写的WhereLT函数好像1.6还没有