2013-07-27 45 views
0

我新的MySQL和我有一個從MySQL數據庫中選擇數據的問題:選擇認可的意見和當前用戶的未經批准的評論MySQL的PHP​​

$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未經批准的評論,

這必須是這樣的: 所有經批准後評論+當前用戶的所有未經批准的帖子

+0

如果你能建立在http://sqlfiddle.com和共享的模式,這將是非常有用的,任何人想幫你 –

回答

1

不知道這是否真的有效,但只是試試看。我無法測試查詢,因爲我們沒有模式。

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 OR(未獲得批准,但該用戶的意見)。你可能必須改變查詢,直到你得到你真正需要的東西,我只是給你這個想法,而不是確切的問題。希望這會幫助你。

+0

感謝這項工程 – ustmaestro

+0

您的代碼看起來很簡單,工作正常 謝謝你節省我的時間 – ustmaestro

0
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 
+0

我猜未經批准的註釋狀態是0 .. –

+0

是未經批准的commet狀態= 0 感謝它工作正常 – ustmaestro

+0

如果它能正常工作,您能接受答案嗎? –

相關問題