我在一个PHP投票系统上工作,我想检查登录的用户在帖子上投票,如果用户已经投票,显示投票。我想在一个查询中完成它,而不使用多个quire。
员额表

+---------+--------+--------+
| post_id | title  | c_id   |
+---------+--------+--------+
|       1 | post 1 |   2    |
|       2 | post 2 |   3    |
|       3 | post 3 |   2    |
|       4 | post 4 |   1    |
+---------+--------+--------+

MySQL循环
SELECT *
  FROM posts
  LEFT
  JOIN categories
    ON categories.cat_id = posts.c_id
 WHERE posts.c_id = categories.cat_id
   AND posts. active = 1
 ORDER
    BY posts.post_id DESC
 LIMIT 0, 10

投票表
+---------+--------+---------+
| vote_id | p_id   | u_id    |
+---------+--------+---------+
|       1 |   1    |   1     |
|       2 |   2    |   1     |
|       3 |   2    |   2     |
|       4 |   4    |   1     |
+---------+--------+---------+

登录用户=$uid
所以如果我在上面的MySQL循环中运行query,它就可以正常工作了
SELECT * FROM votes WHERE u_id = $uid AND p_id= $post_id

有没有办法把这两个查询结合起来?

最佳答案

SELECT *
  FROM posts P
  LEFT
  JOIN categories C
    ON C.cat_id = P.c_id
  LEFT JOIN (SELECT p_id FROM votes WHERE u_id = $uid)  V
    ON V.p_id=P.post_id
   WHERE P. active = 1
 ORDER
    BY P.post_id DESC
 LIMIT 0, 10 ;

关于php - PHP投票系统检查选票,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38025983/

10-13 04:53