2013-07-27 3 views
0

Я новичок в MySQL и у меня есть проблемы с выбором данных из базы данных MySQL:Select одобрил комментарии и неутвержденных комментарии текущего пользователя 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

Можете ли вы принять ответ, если он работает? –

 Смежные вопросы

  • Нет связанных вопросов^_^