SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 06.04.2010 01:37:49

selimhanov
Участник
Зарегистрирован: 06.04.2010
Сообщений: 2

Выборка из нескольких таблиц

Заранее прошу прошения, если это уже где то обсуждалось.
Проблема такая: есть несколько таблиц, которые друг с другом связаны. Может это не самая оптимальная структура для такого типа данных.
Есть таблица File со столбцами id,name,url
Есть таблица Authors, со столбцами id,name
Есть таблица AuthorsOfFiles, со столбцами id,author,file
Есть таблица Books, со столбцами id,name
Есть таблица BooksOfFiles, со столбцами id,book,file
Такая же схема с таблицами, Topics,TopicsOfFiles и т.д.
Задача: выполнив как можно меньше запросов проверить на LIKE '%"+$query+"%' все name-ы во всех таблицах (Authors,Books,Topics и т.д.) и получить список id строк в таблице Files, у которых Authors,Books и т.д. содержит слово $query. Изучая разные темы пришел к следующему:


SELECT files.id FROM files
                LEFT JOIN(authorsOfFiles,authors,books,booksOfFiles,topics,topicsOfFiles)
                ON (authorsOfFiles.file=files.id AND authors.id=authorsOfFiles.author OR booksOfFiles.file=files.id AND books.id=booksOfFiles.book OR
                topicsOfFiles.file=files.id AND topics.id=topicsOfFiles.topic)
                WHERE authors.name LIKE '%".$query."%' OR books.name LIKE '%".$query."%' OR topics.name LIKE '%".$query."%'
                GROUP BY files.id
 

Но к сожалению, работает не совсем так, как хотелось бы. Надеюсь, на Ваш совет.

Заранее благодарен!

Неактивен

 

#2 06.04.2010 05:33:52

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Выборка из нескольких таблиц

А про полнотекстовый индекс не думали?

Неактивен

 

#3 06.04.2010 13:14:16

selimhanov
Участник
Зарегистрирован: 06.04.2010
Сообщений: 2

Re: Выборка из нескольких таблиц

Спасибо за подсказку, постараюсь найти информацию о полнотекстовом индексе. Буду признателен, если дадите ссылку на мануал по этой теме.

Неактивен

 

#4 06.04.2010 13:20:00

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Выборка из нескольких таблиц

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson