Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск текста по нескольким таблицам, Каков синтаксис? 
V
    Опции темы
Skreaper
Дата 6.6.2006, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 31.3.2006

Репутация: нет
Всего: нет



Подскажите пожалыста..... У меня созданно 2 таблицы, я ищу по ключевому text некий текст, но осуществляю его не по одной таблице, а по нескольким. Но тут столкнулся с проблемкой, комп на меня  стал ругаться... Вот как я заставлял делать его выборку:
Код

SELECT * FROM Mainpage, Masters WHERE MATCH(text) AGAINST('ПОЛЕ1')

PS: Оба поля текст в обеих таблицах имеют тип FullText... Как мне посоветуете быть? 
PM   Вверх
Akina
Дата 6.6.2006, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Так нельзя.

Решение - union двух независимых поисков по каждой таблице. С сопоставлением полей при несовпадении структур. Типа:

Код

SELECT * 
FROM Mainpage 
WHERE MATCH(text) AGAINST('ПОЛЕ1')
UNION
SELECT * 
FROM Masters 
WHERE MATCH(text) AGAINST('ПОЛЕ1')
 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Skreaper
Дата 7.6.2006, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 31.3.2006

Репутация: нет
Всего: нет



Да, классно... Спасибо за совет...Все работает...  smile 

Но тут же вылезла следующая проблемка: а если таблицы разлчины по структуре??? Допустим у меня имеются 8 таблиц с идентичной структурой (4 столбца), а одна имеет структуру из восьми столбцов и различные от остальных ключевые поля  smile 

Но не смотря на это, в ней я также хочу оуществлять поиск слов с сохранненой релевантностью... Т.е. чтоб не обходиться двумя незаисимыми поисками, типа: сначала по тем восьми идентичными таблицами, а после осуществлять второй поиск по последней таблице, различающейся по структуре от остальных. Изходя из последнего, как я понимаю, если поиск будет проходить не зависимый, то и значимость слов (релевантность) будет не та, которую бы хотелось получить... Надеюсь что понятно объяснился.... smile 

Очень жду вашего совета.... 
PM   Вверх
Mephisto
Дата 26.6.2006, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: нет
Всего: 34



Тогда указывай в select только идентичные:
Код

SELECT Mainpage.Cod_ID, [Mainpage.text] 
FROM Mainpage 
WHERE MATCH(text) AGAINST('ПОЛЕ1')
UNION
SELECT Mainpage.Cod_ID, [Mainpage.text]
FROM Masters 
WHERE MATCH(text) AGAINST('ПОЛЕ1')
 
PM   Вверх
Akina
Дата 26.6.2006, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Или вводи dummy-поля, если нет возможности совместить по типам:

Код

SELECT text, Field1, Field2, 0 as Field3
FROM Mainpage 
WHERE MATCH(text) AGAINST('ПОЛЕ1')
UNION
SELECT text, Field1, Field2, 0
FROM Masters 
WHERE MATCH(text) AGAINST('ПОЛЕ1')
UNION
SELECT text, 0, '', Field1
FROM Another 
WHERE MATCH(text) AGAINST('ПОЛЕ1')
 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Ignat
Дата 26.6.2006, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Цитата(Akina @  26.6.2006,  15:36 Найти цитируемый пост)
Или вводи dummy-поля, если нет возможности совместить по типам:

Необязательно значение по-умолчанию в том же типе, можно просто NULL. 


--------------------
Теперь при чем :P
PM   Вверх
Akina
Дата 26.6.2006, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата(Ignat @  26.6.2006,  17:17 Найти цитируемый пост)
Необязательно значение по-умолчанию в том же типе, можно просто NULL.  

Можно... но просто заведомые нули и пустые строки дальше обрабатывать будет проще чем вводить доп. проверки на Null. 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0686 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.