Я - stucked на одном вопросе в mysql

Я - stucked на одном вопросе в mysql.

Я хочу принести новый комментарий от стола

  • the comment should be most recent comment on the blog
  • the blogs should be latest 3 blogs.
  • display comment & blog only if their status is Enabled

отчеты должны быть похожими на этот
Структура таблицы для стола стол блог


  
blog_id int - primary (auto increment)
blog_title       -varchar
blog_desc        -varchar
blog_image       -varchar
blog_tags        -varchar
tot_comments     -int
blog_creater     -varchar
blog_create_date -datetime
blog_status      -enum ('Enable','Disable')

table structure for the table blog_comment


comment_id       -int (auto increment)  
fk_blog_id       -int  
comment          -varchar  
comment_by       -varchar  
email            -varchar  
comment_date     -datetime  
comment_status   -enum ('Enable','Disable')

И ниже вопрос, написанный мной, но результат, который я получаю, неправильный.

SELECT b.blog_title,b.blog_image, bc.*
FROM blog_comments  bc, blog b
WHERE bc.comment_status='Enable'
AND b.blog_status='Enable'
AND b.blog_id=bc.fk_blog_id
GROUP BY bc.fk_blog_id    
ORDER BY bc.comment_date DESC 
LIMIT 0,3

Продукция


enter image description here

8
добавлено автор Barmar, источник
+1 для пути вы представили проблему; очень чистое описание
добавлено автор Ionut Flavius Pogacian, источник
сделайте вы хотите произвести результат для сообщения в блоге и that' s соответствующие комментарии в едином запросе? раз так тогда, пожалуйста, обеспечьте, "создают" заявление для этих двух столов. Я хочу составить таблицы.
добавлено автор ripa, источник
сделайте вы хотите произвести результат для сообщения в блоге и that' s соответствующие комментарии в едином запросе? раз так тогда, пожалуйста, обеспечьте, "создают" заявление для этих двух столов. Я хочу составить таблицы.
добавлено автор ripa, источник
+7? Поскольку, что такое в основном часто задаваемые вопросы? Я пропускаю что-то здесь?
добавлено автор Strawberry, источник
+7? Поскольку, что такое в основном часто задаваемые вопросы? Я пропускаю что-то здесь?
добавлено автор Strawberry, источник
группа группами все результаты того определенного блога в один единственный ряд; для этого вы не получаете список всех комментариев..
добавлено автор Luceos, источник
группа группами все результаты того определенного блога в один единственный ряд; для этого вы не получаете список всех комментариев..
добавлено автор Luceos, источник
@IonutFlaviusPogacian: Действительно, кроме названия, которое является...
добавлено автор Mr47, источник
@IonutFlaviusPogacian: Действительно, кроме названия, которое является...
добавлено автор Mr47, источник

12 ответы

для этого легкое решение будет, выполняют 2 вопроса за ваш результат. первый вопрос получает результат сообщения в блоге

$db_blog="select blog_id,blog_title from blog where blog_ststus='Enable'";
$que=mysql_query($db_blog); 
while($row=mysql_fetch_object($que))
{
    echo $row->blog_title;
    $db_comment="select comment from blog_comments where fk_blog_id=".$row->blog_id." and comment_status='Enable' order by comment_date desc";
    $quec=mysql_query($db_comment);
    while($comment=mysql_fetch_object($quec))
    {
         echo $comment->comment;
    }
}
1
добавлено
Большое спасибо @AlpeshTrivedi
добавлено автор ripa, источник
@AlpeshTrivedi I' ll пытаются сделать его в едином запросе. Если я успех тогда я отправлю его в здесь.
добавлено автор ripa, источник
Вы не должны вставлять вопрос некоторое время петля. Это может быть очень опасно и убить работу. Для каждого результата первого вопроса вы будете запускать новый вопрос. Если первый вопрос возвратит 9 результатов, то вы будете выполнять 9 дополнительных вопросов. Используя 2 вопроса не a, но выбор, но удалите второй вопрос за пределами цикла с условием продолжения и используйте результаты 1-го вопроса!
добавлено автор Cecil Zorg, источник
большое спасибо, it' s работал!!thank you very much. но вы знаете, как получают результат одного вопроса
добавлено автор Alpesh Trivedi, источник
SELECT b.blog_title,b.blog_image, bc.*
FROM blog b
left join (
Select * from 
blog_comments bc
WHERE bc.comment_status='Enable'
GROUP BY bc.fk_blog_id    
having max(bc.comment_date) =  bc.comment_date
) bcc on b.blog_id=bcc.fk_blog_id
where
b.blog_status='Enable'
ORDER BY b.blog_create_date desc
LIMIT 0,3

Попробуйте этого

1
добавлено
там вы идете зафиксированные
добавлено автор Techmonk, источник
можно ли создать SQLFIDDLE? sqlfiddle.com
добавлено автор Techmonk, источник
спасибо, но этот вопрос возвращает меня только один ряд из базы данных.....
добавлено автор Alpesh Trivedi, источник
Я хочу лучшие 3 блога и 1 новый комментарий к блогу
добавлено автор Alpesh Trivedi, источник
Спасибо Techmonk, но it' s также обеспечивает неправильно продукцию.
добавлено автор Alpesh Trivedi, источник
SELECT b.blog_title,b.blog_image, bc.*
FROM blog b
left join (
Select * from 
blog_comments bc
WHERE bc.comment_status='Enable'
GROUP BY bc.fk_blog_id    
having max(bc.comment_date) =  bc.comment_date
) bcc on b.blog_id=bcc.fk_blog_id
where
b.blog_status='Enable'
ORDER BY b.blog_create_date desc
LIMIT 0,3

Попробуйте этого

1
добавлено
там вы идете зафиксированные
добавлено автор Techmonk, источник
можно ли создать SQLFIDDLE? sqlfiddle.com
добавлено автор Techmonk, источник
Спасибо Techmonk, но it' s также обеспечивает неправильно продукцию.
добавлено автор Alpesh Trivedi, источник
спасибо, но этот вопрос возвращает меня только один ряд из базы данных.....
добавлено автор Alpesh Trivedi, источник
Я хочу лучшие 3 блога и 1 новый комментарий к блогу
добавлено автор Alpesh Trivedi, источник

Попробуйте это:

SELECT * FROM blog_comments  bc, blog b
WHERE `bc.comment_status`='Enable'
AND `b.blog_status`='Enable'
AND `b.blog_id`=bc.fk_blog_id
ORDER BY `bc.comment_date` DESC LIMIT 1;

Попробуйте более простой:

SELECT * FROM `blog_comment` WHERE 'blog_status'='Enable' AND 'blog_id'='$blogidherefromtitle' ORDER BY 'comment_date' DESC LIMIT1
1
добавлено
стол блога отсутствует в этом вопросе...:)
добавлено автор Alpesh Trivedi, источник

Попробуйте это:

SELECT * FROM blog_comments  bc, blog b
WHERE `bc.comment_status`='Enable'
AND `b.blog_status`='Enable'
AND `b.blog_id`=bc.fk_blog_id
ORDER BY `bc.comment_date` DESC LIMIT 1;

Попробуйте более простой:

SELECT * FROM `blog_comment` WHERE 'blog_status'='Enable' AND 'blog_id'='$blogidherefromtitle' ORDER BY 'comment_date' DESC LIMIT1
1
добавлено
стол блога отсутствует в этом вопросе...:)
добавлено автор Alpesh Trivedi, источник
select b.blog_title, b.blog_image, bc.*
from blog b join
(select bc.*
 from bc join (select fk_blog_id, max(comment_date) latest_date
               from blog_comment
               where comment_status = 'Enable'
               group by fk_blog_id) latest
 on bc.fk_blog_id = latest.fk_blog_id and bc.comment_date = latest_date) c
on b.blog_id = c.fk_blog_id
where b.blog_status = 'Enable'
order by c.comment_date desc
limit 0, 3

<Код> c подвопрос находит ряд с последним комментарием для каждого блога, используя технику в связанном вопросе. К этому тогда присоединяются с блог стол, чтобы получить соответствующие данные о блоге.

0
добавлено
Зафиксированный это. It' s названный c в той части вопроса.
добавлено автор Barmar, источник
получение ошибки:-№ 1051 - Неизвестный стол ' bc'
добавлено автор Alpesh Trivedi, источник
SELECT b.blog_title,b.blog_image, bc.*
FROM blog_comments  bc JOIN blog b ON bc.fk_blog_id = b.blog_id
WHERE bc.comment_status='Enable'
AND b.blog_status='Enable'
GROUP BY bc.fk_blog_id    
ORDER BY bc.comment_date DESC 
LIMIT 0,3
0
добавлено
SELECT b.blog_title,b.blog_image, bc.*
FROM blog_comments  bc JOIN blog b ON bc.fk_blog_id = b.blog_id
WHERE bc.comment_status='Enable'
AND b.blog_status='Enable'
GROUP BY bc.fk_blog_id    
ORDER BY bc.comment_date DESC 
LIMIT 0,3
0
добавлено

Попробуйте этот вопрос

SELECT 
  bc.* 
FROM
  blog AS b 
  INNER JOIN (SELECT id , MAX(id) AS MaxID FROM blog) AS bl ON bl.id = b.id 
  LEFT JOIN blog_comment AS bc ON bc.fk_blog_id = b.id 
ORDER BY bc.comment_id DESC 
LIMIT 3     

РЕДАКТИРУЕТ:

SELECT 
  bc.* 
FROM
  blog AS b 
  INNER JOIN (SELECT id , MAX(id) AS MaxID FROM blog GROUP BY id) AS bl ON bl.id = b.id 
  INNER JOIN (SELECT MAX(id) , fk_blog_id FROM blog_comment  GROUP BY id) AS bc ON bc.fk_blog_id = b.id 
ORDER BY bc.comment_id DESC 
LIMIT 3

Это для 3 последних блогов и последних единственных комментариев для каждого блога

Сюда использование внутреннего объединения принесет последний блог. чем комментарии соединения и заказывают им с датой или id и ограничивают их согласно вашим требованиям.

0
добавлено
@AlpeshTrivedi, чем, что вы хотите? that' s точно, для чего разработан мой вопрос.
добавлено автор Muhammad Raheel, источник
@AlpeshTrivedi вы попробовали еще раз, я отредактировал?
добавлено автор Muhammad Raheel, источник
Хорошо позвольте мне отредактировать его
добавлено автор Muhammad Raheel, источник
спасибо и я попробовали только быть несправедливость произведенным. Это приносит только комментарии fk_blog_id = 3
добавлено автор Alpesh Trivedi, источник
спасибо, но этот дает ошибку: № 1054 - Неизвестная колонка ' кипа. MAX' в ' на clause' № 1054 - Неизвестная колонка ' кипа. MAX' в ' на clause'
добавлено автор Alpesh Trivedi, источник

Попробуйте этот вопрос

SELECT 
  bc.* 
FROM
  blog AS b 
  INNER JOIN (SELECT id , MAX(id) AS MaxID FROM blog) AS bl ON bl.id = b.id 
  LEFT JOIN blog_comment AS bc ON bc.fk_blog_id = b.id 
ORDER BY bc.comment_id DESC 
LIMIT 3     

РЕДАКТИРУЕТ:

SELECT 
  bc.* 
FROM
  blog AS b 
  INNER JOIN (SELECT id , MAX(id) AS MaxID FROM blog GROUP BY id) AS bl ON bl.id = b.id 
  INNER JOIN (SELECT MAX(id) , fk_blog_id FROM blog_comment  GROUP BY id) AS bc ON bc.fk_blog_id = b.id 
ORDER BY bc.comment_id DESC 
LIMIT 3

Это для 3 последних блогов и последних единственных комментариев для каждого блога

Сюда использование внутреннего объединения принесет последний блог. чем комментарии соединения и заказывают им с датой или id и ограничивают их согласно вашим требованиям.

0
добавлено
@AlpeshTrivedi, чем, что вы хотите? that' s точно, для чего разработан мой вопрос.
добавлено автор Muhammad Raheel, источник
@AlpeshTrivedi вы попробовали еще раз, я отредактировал?
добавлено автор Muhammad Raheel, источник
Хорошо позвольте мне отредактировать его
добавлено автор Muhammad Raheel, источник
спасибо и я попробовали только быть несправедливость произведенным. Это приносит только комментарии fk_blog_id = 3
добавлено автор Alpesh Trivedi, источник
спасибо, но этот дает ошибку: № 1054 - Неизвестная колонка ' кипа. MAX' в ' на clause' № 1054 - Неизвестная колонка ' кипа. MAX' в ' на clause'
добавлено автор Alpesh Trivedi, источник

попробовать

SELECT b.blog_title,b.blog_image, bc.*
FROM blog_comments AS bc, blog AS b
WHERE bc.comment_status='Enable'
AND b.blog_status='Enable'
AND b.blog_id=bc.fk_blog_id
GROUP BY bc.fk_blog_id    
ORDER BY bc.comment_date DESC 
LIMIT 0,3;

(Я не на 100% уверен),

0
добавлено
спасибо за ваш ответ..., но it' s тот же самый вопрос, который я попробовал!!!
добавлено автор Alpesh Trivedi, источник
Я получаю неправильный результат этого вопроса...: (
добавлено автор Alpesh Trivedi, источник
Я фигурировал, "КАК" была проблема. жаль.
добавлено автор keks, источник

попробовать

SELECT b.blog_title,b.blog_image, bc.*
FROM blog_comments AS bc, blog AS b
WHERE bc.comment_status='Enable'
AND b.blog_status='Enable'
AND b.blog_id=bc.fk_blog_id
GROUP BY bc.fk_blog_id    
ORDER BY bc.comment_date DESC 
LIMIT 0,3;

(Я не на 100% уверен),

0
добавлено
спасибо за ваш ответ..., но it' s тот же самый вопрос, который я попробовал!!!
добавлено автор Alpesh Trivedi, источник
Я получаю неправильный результат этого вопроса...: (
добавлено автор Alpesh Trivedi, источник
Я фигурировал, "КАК" была проблема. жаль.
добавлено автор keks, источник
phpGeeks
phpGeeks
3 620 участник(ов)

Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
1 345 участник(ов)

Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.

PHP
PHP
1 309 участник(ов)

Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
1 251 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

MySQL
MySQL
995 участник(ов)

The group is about MySQL. For code use hastebin.com. Admin: @smlkw

phpGeeksJunior
phpGeeksJunior
980 участник(ов)

Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

phpclub.ru
phpclub.ru
872 участник(ов)

Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

Devall | PHP
Devall | PHP
272 участник(ов)

Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp