简体   繁体   English

如何计算此SQL查询?

[英]How do I count this SQL query?

I'm trying to figure out how to count this query with a left join: 我试图弄清楚如何用左联接计算该查询:

$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]");

This was my approach: 这是我的方法:

$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);

This doesn't work. 这行不通。 All I get is a "PHP Warning: mysql_result() expects parameter 1 to be resource, boolean given[...]" error. 我得到的只是一个“ PHP警告:mysql_result()期望参数1为资源,给定布尔值[...]”错误。

If you want more than ava_users.id (from the first table) - pull the fields by their names (don't use ava_users.* ) and change group by respectively. 如果要从第一个表中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

Comment : 评论
Do not use mysql_* functions - its deprecated (see the red box ) and vulnerable to sql-injection. 不要使用mysql_*函数-已过时(请参见红框 ),并且容易受到sql-injection的攻击。 Use PDO or MySQLi instead. 请改用PDO或MySQLi。

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

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