左连接中的SELECT COUNT(*)

时间:2015-02-17 00:07:03

标签: mysql count left-join rows

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

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

我知道我可以在一个表中使用COUNT(*)计算行数,但如何在左联接中进行计算?

1 个答案:

答案 0 :(得分:0)

我想你需要这样做

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

但很多"图书馆"允许计算结果计数,如

$result->count();

在我看来,如果你使用JAVA,php等......你不需要再做一次请求