Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: sql-запрос (работа с 3 таблицами)
 
 автор: Katakikuto   (07.05.2008 в 21:31)   письмо автору
 
 

Привет всем. Помогите решить проблему со сложным (для меня) запросом. Сейчас попытаюсь в кратце описать что к чему...
Имеется 3 таблицы: post (поля: postID,cat), category (catID) и comments (post). Написал только главные поля, с которыми нужно работать.

Необходимо вывести всю инфу из таблицы post, где post.cat=category.catID и посчитать колво строк в таблице comments, где comments.post=post.postID

Запрос без посдчета кол-ва строк (он ниже) это все просто для меня, а вот дальше...
SELECT * FROM post,category WHERE post.cat=category.catID ORDER BY post.date desc

Помогите пожалуйста :)

   
 
 автор: Axxil   (07.05.2008 в 21:54)   письмо автору
 
   для: Katakikuto   (07.05.2008 в 21:31)
 

Что-то вроде такого:
SELECT *,count(t3.*) as comments_count FROM post t1
LEFT JOIN category t2 ON t1.cat=t2.catID 
LEFT JOIN comments t3 ON t1.postID =t3.postID
GROUP BY t1.postID
ORDER BY t1.post.date desc

   
 
 автор: Katakikuto   (08.05.2008 в 01:32)   письмо автору
 
   для: Axxil   (07.05.2008 в 21:54)
 

Axxil, спасибо тебе огромное! Достаточно было просто мне намекнуть что это все делается путем объединения таблиц :)
PS. у тебя в запросе пару ошибок есть (count(t.3*) - t.3 пока не известно какой таблице принадлежит, t1.postID =t3.postID - t1.postID равняется просто t3.post, и t1.post.date - просто t1.date), но это далеко не важно. Если бы я все полностью описал как пологается, то наверняка все написано было бы верно.
Еще раз спасибо тебе огромное :)

   
 
 автор: Axxil   (08.05.2008 в 09:42)   письмо автору
 
   для: Katakikuto   (08.05.2008 в 01:32)
 

Ну я ж не на оценку запрос писал :)))

Схематично. Словами дольше бы получилось.

> t.3 пока не известно какой таблице принадлежит

Как это 8-0 ? Второй JOIN чётко опредеяет алиас для таблицы comments - t3

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования