获取带有计数的行

时间:2014-02-19 16:14:43

标签: mysql sql

--------------------------------------------------
| UserID    |   Name        | RefID              |
--------------------------------------------------
| 1         | xyz           |  1                 |
| 2         | abc           |  1                 |
| 3         | def           |  1                 |
| 4         | gij           |  2                 |
| 5         | jkl           |  2                 |
| 6         | mno           |  2                 |
--------------------------------------------------
$query = mysql_query("SELECT * FROM `users` WHERE UserID='$id' LIMIT 1 ");
$query_ref = mysql_query("SELECT COUNT(ref) FROM `users` WHERE RefID='$id'");

这两个查询可以合并到一个查询中吗?

2 个答案:

答案 0 :(得分:1)

你在找这样的东西吗?

SELECT UserID, Name,
(
  SELECT COUNT(RefID) 
    FROM users 
   WHERE RefID = u.UserID
) RefCount
  FROM users u
 WHERE UserID = ?
 LIMIT 1

示例输出:

| USERID | NAME | REFCOUNT |
|--------|------|----------|
|      1 |  xyz |        3 |

这是 SQLFiddle 演示

注意事项:使用MysqliPDO学习并使用prepared statements,而不是插入查询字符串。

答案 1 :(得分:0)

根据我的理解,您希望计算具有引用ID的用户数。我会用这种方式:

SELECT count(*) as "counted" FROM users WHERE RefID=1

这会让你想到你想要的数据。

此致