我如何计算此SQL查询?

时间:2013-08-08 15:40:30

标签: mysql

我正在试图弄清楚如何使用左连接来计算此查询:

$friends_q = mysql_query("SELECT ava_users.*
FROM ava_friends
LEFT JOIN ava_users 
ON ava_friends.user2 = ava_users.id
WHERE ava_friends.user1 = $user[id]");

这是我的方法:

$total_results = mysql_result(mysql_query("
SELECT
    ava_users.*, COUNT(*) as Num
FROM ava_friends
    LEFT JOIN ava_users ON ava_friends.user2 = ava_users.id
WHERE ava_friends.user1 = $user[id]"), 0);

这不起作用。我得到的只是一个“PHP警告:mysql_result()期望参数1是资源,布尔给出[...]”错误。

1 个答案:

答案 0 :(得分:4)

如果您想要超过ava_users.id(来自第一个表格) - 请按名称提取字段(不要使用ava_users.*)并分别更改group by

SELECT ava_users.id, count(ava_friends.user2) as "Counter"
FROM ava_friends
LEFT JOIN ava_users 
ON ava_friends.user2 = ava_users.id
WHERE ava_friends.user1 = $user[id]
group by ava_users.id

注释
不要使用mysql_*函数 - 已弃用(请参阅 red box )并且易受sql注入攻击。请改用PDO或MySQLi。