我正在尝试完成以下查询:
SELECT *, (SELECT COUNT(*) FROM cars WHERE status = 1) total
FROM cars
WHERE status = 1
LIMIT 5;
这是我的python代码:
subq = session.query(func.count('*').label('total')).select_from(Car).filter(Car.status == 1).subquery()
query = session.query(Car, subq).filter(Car.status == 1).limit(5).all()
但它完全产生了一个不同的查询:
SELECT cars.id AS cars_id, cars.status AS cars_status, anon_1.total AS anon_1_total
FROM cars, (SELECT count('*') AS total
FROM cars
WHERE cars.status = 1) AS anon_1
WHERE cars.status = 1
LIMIT 5
是否可以强制子查询的WHERE子句成为子查询的一部分?