2014-02-19 21 views
0
 
-------------------------------------------------- 
| 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'"); 

难道这两个查询合并为一个查询?获取与数列

回答

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演示

在一个侧面说明:学习和使用prepared statements有两种MysqliPDO而不是插值查询字符串。

+0

工作就像一个魅力!谢谢! – LeGend

0

从我可以理解你要计数的用户数与参考ID。我会用这种方式:

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

这将giff你你可能想要的数据。

Regards