显示我与引座员共同的条目,以喜欢和不喜欢分隔

Posted

技术标签:

【中文标题】显示我与引座员共同的条目,以喜欢和不喜欢分隔【英文标题】:Show entries that I have in common with an user, seperated by likes and dislikes 【发布时间】:2016-11-12 13:14:27 【问题描述】:

我有一个页面系统,就像 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 = 10)分开。我想我应该用UNION 写一个子查询?但我不知道具体是怎样的。

这是我的结构:

【问题讨论】:

你没有聚合函数。那么,为什么要使用 GROUP BY 子句?并查看meta.***.com/questions/333952/… 为了避免重复的页面条目,我输出为页面标题。 sum(l.status) as liked, count(l.status)-sum(l.status) as disliked 应该怎么做?我主要想计算我与特定用户的相互喜欢/不喜欢。 什么是title_de 【参考方案1】:

将这些情况改为

SUM(l.status = 1) AS likes,
SUM(l.status = 0) AS dislikes,

【讨论】:

以上是关于显示我与引座员共同的条目,以喜欢和不喜欢分隔的主要内容,如果未能解决你的问题,请参考以下文章

如果光标具有特定值,则更改 ListView 中的图像

将逗号分隔的条目拆分为新行(无 VBA)

如果条目存在和不存在,则返回列表

过滤以仅显示 Excel 2010 中的重复条目 [关闭]

Gravity Forms - 将字段条目显示为实时预览

拆分(分解)熊猫数据框字符串条目以分隔行