私はPHP投票システムに取り組んでいます。ログインしたユーザーをチェックして、投稿に投票し、ユーザーが投票した場合は投票します。私は複数のquiresを使用せずに1つのクエリでそれをしたいと思います。 投稿テーブルログインしてい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
これらの2つのクエリを組み合わせる方法はありますか?
が<?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 active = 1 AND ORDER BY P.post_id DESC'を' WHERE P. active = 1 ORDER BY P.post_id DESC'に変更してください。ありがとうございました – Jordyn