我正在试图弄清楚如何使用左连接来计算此查询:
$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是资源,布尔给出[...]”错误。
答案 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。