繁体   English   中英

如何计算此SQL查询?

[英]How do I count this SQL query?

我试图弄清楚如何用左联接计算该查询:

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

如果要从第一个表中ava_users.id以外的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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM