Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Запрос с двух таблиц (Ken) 03/09/2003 - 10:52:34
      Re: Запрос с двух таблиц (Валентин) 03/09/2003 - 11:47:25

> Original message text:
> From: Ken - 03/09/2003 - 10:52:34
> Subject:Запрос с двух таблиц
> -----------------
> Продолжаю тему о новостном движке.
> Тяжко даются сложные запросы, прошу помочь, может есть хорошая книга по таким вещам?
>
> Есть две таблицы с новостями и комментариями -
> create table tbl_news (
> news_id INT NOT NULL AUTO_INCREMENT, // - номер новости
> news_title VARCHAR(255),
> news_text TEXT,
> news_date DATETIME NOT NULL,
> news_author VARCHAR(255),
> PRIMARY KEY (news_id));
>
> create table tbl_comments (
> com_id INT NOT NULL,
> news_id INT NOT NULL, // номер новости из 1 таблицы
> com_text TEXT NOT NULL,
> com_author VARCHAR(255),
> com_email VARCHAR(255),
> PRIMARY KEY (news_id));
>
> Теперь надо запросом вычислить последние пять новостей из 1 таблицы и сразу узнать сколько комментариев у каждой из новостей
> Пока выстрадал вот такое неработающее чудо -
> SELECT tbl_news.*, count(tbl_comments.*) FROM tbl_news, tbl_comments WHERE tbl_comments.news_id=tbl_news.news_id
> GROUP BY tbl_news.news_id ORDER BY news_id DESC LIMIT 5;
>
>


From: Валентин - 03/09/2003 - 11:47:25
Subject:Запрос с двух таблиц
-----------------
Попробуйте так
SELECT tbl_news.*, count(tbl_comments.com_id) FROM tbl_news
left join tbl_comments on
(tbl_comments.news_id=tbl_news.news_id)
GROUP BY tbl_news.news_id
ORDER BY news_id DESC
LIMIT 5;

Нужно применять не объединение а левое объединение, потому что при объединении если нет комментария - то не будет выведено и новости.
При левом объединении будут выведены все 5 новостей и если есть сумма коментариев.

Почитайте книгу Грубера "Введение в SQL" - можно скачать из "Документации" этого сайта.






[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
10477



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |