2

我试图弄清楚如何用左连接计算这个查询:

$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 是资源,布尔给定 [...]”错误。

4

1 回答 1

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_*函数——它已被弃用(见红框)并且容易受到 sql-injection 的影响。请改用 PDO 或 MySQLi。

于 2013-08-08T15:44:22.517 回答