【发布时间】:2015-08-09 00:23:54
【问题描述】:
我有一个查询,用户可以使用JOIN 从两个表中提取数据。但我希望结果中的一列特定于user_id,或者如果它与user_id 不匹配,则返回null。
SQL:
SELECT
posts.id,
posts.deviceID,
posts.type,
posts.title,
posts.time,
SUM(value) AS votes,
value AS userVote, <--- THIS NEED TO BE UNIQUE TO WHAT THE USER ID IS.
FROM posts
LEFT JOIN votes
on (posts.id = votes.post_id)
GROUP BY posts.id
如您所见,有value AS userVote 的SELECT 语句。该函数提供user_id 和php $_POST['user_id'] 方法,我知道如何输入这个值。这个查询让我有点困惑。
生成快照:
另外,如果这是重复的问题,请提前抱歉,但我想不出这个方法在 MySQL 查询中调用了什么,如果你能告诉我,我很感激。
更新:
目前我可以使用CASE WHEN votes.user_id = 'USERID' THEN value END AS userVote 正确获取值,多亏了一个答案,但是当有两个值时,它不会返回用户值而是null。
更新截图:
【问题讨论】:
-
带有
case when或if的列 -
@Drew 是的,查询是什么,我该如何在 join 语句中执行?我真的很感激