SELECT 左连接中的 COUNT(*)

SELECT COUNT(*) in a Left Join

所以,我有一个简单的左连接:

SELECT 
      a.SetNumber, 
      a.SetID, 
      COUNT(a.QuantityOwned) AS Pwnd,
      b.ImageURL, 
      COUNT(a.Quantity) AS Cmplt
FROM a
LEFT JOIN b ON a.SetNumber = b.Number
GROUP BY a.SetID

产生这个:

SetNumber 11 21 13

SetID 1 2 1

Pwnd 45 33 50

Cmplt 50 36 50

ImgURL a.jpg b.jpg c.jpg

这很好,当我使用数据时,但我想在我的分页中有一个 >> 箭头,为此我想获得行数,即在这种情况下所需的结果是:

3

我知道我可以在一个 table 中计算 COUNT(*) 的行数,但我如何在左连接中计算?

我想你需要这样做

SELECT COUNT(1) FROM (SELECT a.SetNumber, a.SetID, COUNT(a.QuantityOwned) AS Pwnd ,b.ImageURL, COUNT(a.Quantity) AS Cmplt
    FROM a
    LEFT JOIN b ON a.SetNumber = b.Number
    GROUP BY a.SetID) table1

left join 不是这里的问题,而是 group by

但是很多"Libraries"允许像

这样计算结果
$result->count();

在我看来,如果您使用 JAVA、php 等...您不需要执行另一个请求