我正在嘗試創建一個朋友關係查詢。我想要下面的查詢做兩件事,而不是做另一個非常類似的查詢。在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