我正在尝试创建一个朋友关系查询。我想要下面的查询做两件事,而不是做另一个非常类似的查询。在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列相同的用户也计算所有的OCCURENCES用户的occurence即:如果用户#2有他的身份证在friend_one列只有2次,但他的身份证出现在friend_two列的8次,查询将计数10,因为m,y where子句。我需要的值是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
圈= PENDING_COUNT
为什么你需要在'friend_one'和'friend_two' where子句为'WHERE friend_one OR friend_two =?'??? – Viki888
如果你指的是我在我的问题中写的? 'WHERE friend_one =?至于pending_user WHERE friend_two =? AS sent_user'我不确定如何写我想要的东西,我只是把它放在其他人的头上以获得清晰。 – Paul
只需提供样品数据和您的预期结果。 – Viki888