MySQL统计所有特定的表?

时间:2011-11-22 05:04:26

标签: php mysql sql

我正在尝试编写一个可以计算连接表和特定列值的查询,但我无法理解它是如何工作的。

我的知识仅限于思考如果我想算一切,它会是这样的。

"SELECT COUNT(*) FROM 'table'";

因此,这实际上将返回该特定表中所有行的计数。但是我需要特定表中的特定行,那么我该如何计算相同的数量?

例如我有这个。

SELECT u.ID AS id, u.user_login AS login, u.user_email AS email
   , m_firstname.meta_value AS first_name
FROM users u
LEFT JOIN usermeta m_firstname ON m_firstname.user_id = u.ID
   AND m_firstname.meta_key = 'first_name'

从上面的语句中我除了通过数组循环外,我怎么算数呢?是否有可用于解决此问题的MYSQL语法?

*以上示例代码仅用于说明我要做的事情,可能不是完全正常工作的代码。

1 个答案:

答案 0 :(得分:0)

如果您想统计所有用户,可以在此处使用COUNT(1)。如果您要计算特定列的NON-NULL值的数量,请使用COUNT(columnName)

SELECT COUNT(m_firstName.user_id)
FROM users u
LEFT JOIN usermeta m_firstname ON m_firstname.user_id = u.ID
   AND m_firstname.meta_key = 'first_name'

以上查询将统计与m_firstName.user_idNOT NULL

的此查询匹配的所有记录