0
我有一個頁面系統像一個在Facebook上,每一個用戶可以喜歡或不喜歡,甚至一個頁面。 status = 1
是一個像,0
是一個不喜歡。展項,通過分隔喜歡惡
這是我的查詢:
SELECT
p.title_de, de, p.keyname, l.status,
(CASE WHEN l.status = '1' THEN title_de END) AS liked,
(CASE WHEN l.status = '0' THEN title_de END) AS disliked
FROM pages_likes l
JOIN pages p on p.id = l.page_id
WHERE p.keyname != 'rship' AND l.uid = '311'
GROUP BY l.page_id
ORDER BY p.title_de ASC
問題:
1)我也想算都喜歡和該用戶不喜歡的條目。目前我爲此編寫了額外的查詢,但是我想知道在查詢中實現該計數是否更有效?我試圖使用COUNT
,但是我只從整個查詢中得到一個結果。
2)我想顯示公共/相互喜歡我有與該用戶(uid
裝置USER_ID)。我試圖添加一個AND 'uid' = 1
到WHERE
,但那不起作用。這也應該由喜歡和不喜歡(status = 1
和0
)分開。我想我應該寫一個UNION
子查詢?但我不知道如何。
這是我的結構:
你沒有聚合函數。那麼,爲什麼你有GROUP BY子句?並參見http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql-查詢 – Strawberry
爲了避免重複的頁面條目作爲頁面標題輸出。 – AlexioVay
'總和(l.status)如喜歡,計數(l.status)-sum(l.status)作爲disliked' – Mike