PHP 투표 시스템에서 작업 중이며 로그인 한 사용자가 게시물에 투표하고 사용자가 투표 한 경우 투표를 표시하고 싶습니다. 여러 quires 사용하지 않고 하나의 단일 쿼리에서 그것을하고 싶습니다. 게시물 테이블PHP 투표 시스템 체크 투표
+---------+--------+--------+
| 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의 루프 위가 잘 작동 = 사용자가 로그인 한
SELECT * FROM votes WHERE u_id = $uid AND p_id= $post_id
이 두 쿼리를 결합하는 방법이 있습니까?
이<?php
$sql = "SELECT * FROM votes AS V LEFT JOIN posts AS P ON V.p_id=P.post_id
WHERE (V.u_id={$uid} AND V.p_id={$post_id}) GROUP BY V.u_id";
이 작품은 투표 한 게시물 만 표시합니다. 투표 한 표가 표시되지 않습니다. – Jordyn
@Jordyn 업데이트 된 쿼리 –
을 확인하십시오. 'WHERE P. 활성 = 1 AND ORDER BY P.post_id DESC'를'WHERE P. active = 1 ORDER BY P.post_id DESC'로 변경해야합니다. 고맙습니다. – Jordyn