在SQL查询中检查两个不同的东西

保罗

我正在尝试创建朋友关系查询。我希望以下查询可以做两件事,而不是进行另一个非常相似的查询。

我想检查待处理的请求和已发送的请求。待处理的请求是当用户为friend_two时。发送的请求是当friend_one是user_id时。

所以,无论如何,我可以将我的where子句调整为这样的东西(我不知道如何用SQL编写出来)-

WHERE friend_one = ? As pending_user
WHERE friend_two = ? AS sent_user

我不确定是否AS可以将其添加到where子句中。关于我上面编写的代码,问题是占位符的值将是相同的值,并且我不确定如何在php中编写该值。

现在,如果我在friend_one和friend_two列中具有相同的用户,它将计算该用户发生的所有事件,即:如果用户#2仅在其friend_one列中有两次其ID,但是其ID出现在friend_two列8次,由于m,y where子句,该查询将计数10。我需要将值设为2和8。

我怎样才能做到这一点?请参见下面的代码和表。

SELECT *, COUNT(friend_one) AS pending_count , COUNT(friend_two) AS requests_sent   
FROM friends
WHERE friend_one OR friend_two = ?
AND status = ?

朋友表

Table
Create Table
friends
CREATE TABLE `friends` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `friend_one` int(11) NOT NULL DEFAULT '0',
 `friend_two` int(11) NOT NULL DEFAULT '0',
 `status` enum('0','1','2') COLLATE utf8_unicode_ci DEFAULT '0',
 `date` datetime NOT NULL,
 PRIMARY KEY (`id`),
 KEY `friend_two` (`friend_two`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

平方= requests_sent

圈子=未决计数

在此处输入图片说明

Juan Carlos Oropeza占位符图像

@name, @status参数。我相信你想要这样的东西。

SELECT COUNT(CASE WHEN `friend_one` = @name THEN 1 END) as `pending_count`,
       COUNT(CASE WHEN `friend_two` = @name THEN 1 END) as `requests_count`
FROM friends
WHERE @name IN ( `friend_one` , `friend_two` )
  AND `status` = @status

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在两个不同的子 SQL 查询中查找两个不同列之间的差异

合并SQL中两个不同查询的结果集

SQL查询从两个表中获取不同的记录

两个不同查询的总和(SQL)

SQL:合并两个不同的查询

用于检查两个不同数据库的两个表中的匹配记录的存储过程PL / SQL

在SQL中合并两个查询

在 SQL 中组合两个查询

一个SQL查询中涉及不同列的两个独立更新

从选择查询中的两个不同表中减去两个不同的列总和

在单个SQL查询中从两个不同的行中检索数据?

在DBeaver中,如何从两个不同的连接中运行SQL联合查询。

更新查询两个不同表中的两个不同列-MySQL

如何从不同的模块导入两个不同的东西?

带有两个不同表的 t/sql 查询

Codeigniter SQL查询在两个不同的列上联接

SQL查询-获取两个表的不同计数

具有两个不同ID的SQL查询

如何对两个不同 SQL 查询的结果求和?

SQL Server 中两个不同服务器之间的查询表

根据 sql 文件中的日期执行两个不同的查询

如何在SQL查询中匹配两个不同的表?

在这两个查询中按SQL逐级解释Connect的不同行为

Spark SQL 用于从两个不同的查询中划分计数并将输出存储为 Double

检查Bash中两个文件的大小是否不同

检查php mysql查询中的两个表值

如何从 OWL 中的两个不同属性中推断出某些东西?

查询以从两个不同的表中获取数据

如何从两个不同表的 JSON 数组中查询?