簡體   English   中英

選擇當前用戶MySQL PHP的批准注釋和未批准注釋

[英]Select approved comments and unapproved comments of current user MySQL PHP

我是mysql新手,從mysql數據庫中選擇數據時遇到問題:

$post_id = 3;
$current_user_id = 1;

$query = "SELECT `comments`.*, `users`.`username`, `users`.`image` FROM (`comments`)
LEFT JOIN `users` ON `comments`.`user_id` = `users`.`id`
WHERE `comments`.`post_id` =  '$post_id'
AND `comments`.`status` =  1
AND `users`.`status` =  1
ORDER BY `comments`.`date` desc";

此選擇從數據庫中選擇所有批准的注釋,但是在此選擇中,我需要$ current_user_id的所有未批准的注釋,

結果必須如下所示:

[所有批准的帖子評論] + [$ current_user_id的所有未批准帖子評論]


不知道這是否真的有效,請嘗試一下。 由於沒有架構,因此無法測試查詢。

SELECT `comments`.*, `users`.`username`, `users`.`image` FROM (`comments`)
LEFT JOIN `users` ON `comments`.`user_id` = `users`.`id`
WHERE `comments`.`post_id` =  '$post_id'
AND (
   (`comments`.`status` =  1 AND `users`.`status` =  1)
  OR
   ( `comments`.`status` =  0 AND `users`.`id`= '$current_user_id' )
)
ORDER BY `comments`.`date` desc

我認為是選擇所有已approved comments或(未批准,但來自此用戶的評論)。 您可能需要更改查詢,直到獲得真正需要的內容為止,我只是為您提供想法,而不是確切的查詢。 希望這會幫助你。

SELECT `comments`.*, `users`.`username`, `users`.`image` FROM (`comments`)
LEFT JOIN `users` ON `comments`.`user_id` = `users`.`id`
WHERE `comments`.`post_id` =  '$post_id'
AND `comments`.`status` =  1
AND `users`.`status` =  1
UNION ALL
SELECT `comments`.*, `users`.`username`, `users`.`image` FROM (`comments`)
LEFT JOIN `users` ON `comments`.`user_id` = `users`.`id`
WHERE `comments`.`post_id` =  '$post_id'
AND `comments`.`status` =  0
AND `users`.`id` = '$current_user_id'
ORDER BY `comments`.`date` desc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM