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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Сложный запрос с выводом категорий/подкатегорий

Сообщения:  [1-4] 

 
 автор: FiX   (01.12.2008 в 15:03)   письмо автору
 
   для: FiX   (01.12.2008 в 11:08)
 

Итак, вопрос решен. Теперь другое - как вывести количество найденных статей в базе?

SELECT articles . * , COUNT( * ) AS totct, toc.id AS tocid, toc.pid AS tocpid, toc.art AS tocart, 
issues.id AS issuesid, issues.pid AS issuespid, categs_en.id AS catid, 
categs_en.pid AS catpid, categs_en.link AS catlink
FROM articles, toc, issues, categs_en
WHERE (
articles.full_text LIKE '%сердце%'
AND toc.art = articles.id
AND issues.id = toc.pid
AND categs_en.id = issues.pid
)
GROUP BY articles.id


И вообще, реально ли это? Данный запрос выводит 1. Почему? :)

Просто база данных очень большая (~200Mb), и не хочется делать еще один запрос чтобы узнать количество найденных статей.

  Ответить  
 
 автор: FiX   (01.12.2008 в 11:08)   письмо автору
 
   для: Trianon   (01.12.2008 в 11:03)
 

согласен, там вообще много неадекватных решений.
Дело в том, что сайт работает уже много лет, и у неё огромная база статей. Переделывать её нет смысла. Моя задача - просто сделать поиск по этой базе...

  Ответить  
 
 автор: Trianon   (01.12.2008 в 11:03)   письмо автору
 
   для: Fix   (01.12.2008 в 10:56)
 

использовать имя pid для чего-либо, кроме ссылки на свой собственный первичный ключ - это вносить нездоровую путаницу.

  Ответить  
 
 автор: Fix   (01.12.2008 в 10:56)   письмо автору
3.8 Кб
 
 

Пожалуйста, помогите составить правильный запрос.
Есть 4 таблицы:

articles
id
pid
full_text


toc
id
pid
art


issues
id
pid


categs_en
id
pid
path

В приложенном файле (картинка) я схематично показал структуру базы данных.
Вопрос: можно ли обойтись одним запросом:

SELECT articles.*, toc.*, issues.*, categs_en.* FROM toc, issues, categs_en 
WHERE articles.full_text LIKE ‘%test%’ AND toc.art='6921' AND issues.id=toc.pid AND categs_en.id=issues.pid

Данный запрос не работает... Он выводит слишком много результатов.
Вообще вся сложность состоит в том, чтобы определить путь этой статьи. В таблице categs_en хранятся категории/подкатегории, у которых указан путь (своя папка). В итоге получается ссылка типа /magazines/electro/gym/.

Буду очень благодарен, если поможете... А то уже несколько дней бьюсь с этим запросом.

  Ответить  

Сообщения:  [1-4] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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