我想排序頁喜歡/總和所有用戶不喜歡我共享同一頁喜歡/不喜歡與和訂購吧最喜歡/不喜歡的組合。排序方式相互喜歡/所有用戶的好惡,由像分離或不喜歡
我嘗試加入同一張桌子本身,但我不知道如何分開COUNT
,我同時得到喜歡和不喜歡的同時不改變WHERE
條件。
假設我的UID(用戶ID)是544我有這個疑問:
SELECT l1.id, l1.uid, l1.item_id, l1.status, l2.id, l2.uid, l2.item_id, l2.status,
COUNT(*) AS common_likes,
COUNT(*) AS common_dislikes // should check for status = 0
FROM pages_likes AS l1
JOIN pages_likes AS l2 ON l1.item_id = l2.item_id
WHERE l1.uid != 544 AND l2.uid = 544
GROUP BY l1.uid
ORDER BY common_likes DESC, l1.uid DESC
LIMIT 10
事實上這個查詢一般提供錯誤的結果,因爲我可以檢查單用戶頁面的共同喜好/不喜歡和計數是不同的,我從這個查詢common_likes
得到的結果。例如,我有www.domain.com/user/123/
,並查看我使用uid IN (123,544)
檢查特定用戶標識的常見喜好的所有常見喜好/不喜歡情況。但是現在我需要所有用戶的概述(www.domain.com/users/
),所以它應該是一個不同的查詢。
因此,我發佈的查詢是我想出的並需要改進的查詢。
表結構:
page_likes
:id
,uid
,item_id
,status
,date
uid
裝置的用戶ID。
status = 1
的意思就像。
status = 0
表示不喜歡。
查詢輸出:
你會得到同樣的喜好和不喜歡的數量。這是你的問題? – Viki888
是的,因爲它與其他別名使用的SELECT相同。就像我說的,喜歡的數量也是不正確的,我也想把它分成喜歡和不喜歡的東西。 – AlexioVay