我要做的是返回查询的(和有限的)结果以及表中的项目总数。这是我目前掌握的情况。
SELECT id, name
FROM ??
WHERE
user_id = ?
LIMIT ? , ?;
SELECT COUNT(*) as total
FROM ??
WHERE
user_id = ?
;
这是两个sql查询,我想知道如何或者是否有可能将其组合成一个。我希望总数是自己的(如果可能的话),否则作为一个附加列到每一行。或者也许我现在得到的是最理想的解决方案。
3条答案
按热度按时间1l5u6lss1#
好吧,您可以使用子查询将计数包含在每一行中:
但是,从关注点分离的Angular 来看,这可能不是最佳做法。相反,更典型的情况是,我希望在这里看到两个独立的查询。
thigvfpy2#
参考文献。
或者,我会投票给
CROSS JOIN
,而不是子查询。wvyml7n53#
另一种方法是使用
CROSS JOIN
```SELECT
t1.id,
t1.[name],
t2.cnt
FROM
yourtable t1
CROSS JOIN
(
SELECT
COUNT(1) AS cnt
FROM
yourtable
WHERE
[user_id] = ?
) t2
WHERE
t1.[user_id] = ?
LIMIT
?, ?