【发布时间】:2016-12-13 11:19:20
【问题描述】:
我正在尝试获取所有帖子和帖子旁边的变量“喜欢”,以检查用户是否喜欢它。
我有三张桌子和论文:
-帖子
+----+---------+---------+
| id | user_id | text |
+----+---------+---------+
-投票
+----+-----------+---------+---------+
| id | type_vote | user_id | post_id |
+----+-----------+---------+---------+
-用户
+---------+---------+
| id_user | etc.. |
+---------+---------+
我检查了其他答案,但它并没有解决我的问题。我也试过这段代码:
SELECT id, text,
IF('$uid' IN (SELECT id FROM votes WHERE user_id='$uid'), 1, 0) AS liked
FROM posts
INNER JOIN users
ON users.id_user = posts.user_id
WHERE posts.user_id = '$uid' OR posts.user_id
ORDER BY posts.created_at desc
但它只返回用户创建的帖子,并且喜欢的变量不起作用..
我错过了什么?
提前致谢!
编辑:
我设法获得了相应帖子旁边的投票 id,如果 NULL 和 1 如果 id 存在,如何将其转换为 0?
SELECT p.*,(SELECT id from votes where user_id = '$uid' AND post_id = p.id) as liked from posts p
我得到如下结果:
+----+------+---------+---------------+
| id | text | user_id |liked |
+----+------+---------+-----+---------+
| 1 | blab | 5476zef |NULL OR post_id|
+----+------+---------+---------------+
【问题讨论】:
-
您使用的是哪个 dbms? (那里有一些非 ANSI SQL...)
-
嗨,我正在使用 mysql
-
添加一些示例表数据,以及预期的结果。 (以及格式化文本。)
-
我编辑我的问题!