这是我的桌子。
mysql> desc products;
+--------------------+-------------+------+-----+--------------------------------------+-------+
| Field              | Type        | Null | Key | Default                              | Extra |
+--------------------+-------------+------+-----+--------------------------------------+-------+
| productCode        | varchar(15) | NO   | PRI | NULL                                 |       |
| productName        | varchar(70) | NO   |     | NULL                                 |       |
| productUrl         | varchar(50) | YES  |     | NULL                                 |       |
| productLine        | varchar(50) | NO   |     | NULL                                 |       |
| productScale       | varchar(10) | NO   |     | NULL                                 |       |
| productVendor      | varchar(50) | NO   |     | NULL                                 |       |
| productDescription | text        | NO   |     | NULL                                 |       |
| quantityInStock    | smallint(6) | NO   |     | NULL                                 |       |
| buyPrice           | double      | NO   |     | NULL                                 |       |
| MSRP               | double      | NO   |     | NULL                                 |       |
| Image              | varchar(50) | YES  |     | phpGridx/SampleImages/motorcycle.jpg |       |
+--------------------+-------------+------+-----+--------------------------------------+-------+当我尝试下面的查询时..?
mysql> select productVendor,count(productCode) from products order by productCode;
+-----------------+--------------------+
| productVendor   | count(productCode) |
+-----------------+--------------------+
| Min Lin Diecast |                110 |
+-----------------+--------------------+为什么会显示“民林食堂”。我的桌子上还有另外11个productVendors。为什么要这样做,总行数是110。这是可以的,但我不明白为什么它特别显示供应商。(这甚至不是第一个记录)。
有人能给我解释一下为什么..
发布于 2012-12-28 13:35:40
试试这个:
SELECT productVendor,count(productCode) 
FROM products 
GROUP BY productVendor
ORDER BY productCode;发布于 2012-12-28 13:35:04
因为您没有GROUP BY子句,导致它只返回1条记录。
select productVendor,count(productCode) 
from products 
GROUP BY productVendor
order by productCode如果您在mysql中启用了ONLY_FULL_GROUP_BY,则不会执行您的查询。
发布于 2012-12-28 14:02:06
由于您没有在查询中添加GROUP BY子句,而在SELECT语句中有两个列productVendor和productCode,因此我的问题是,如果您只想知道productCode的数量,那么为什么选择productVendor列,因为productVendor值始终是该列的第一个值。
因此,如果您想要计算所有productCode,则应该使用GROUP BY子句
     SELECT productVendor,count(productCode) 
     FROM   products 
     GROUP BY productVendor
     ORDER BY productCodehttps://stackoverflow.com/questions/14065031
复制相似问题