P.S. повторяю вопрос, потому что не сразу заметил, что поставил не 99, а 5 баллов )
Как искать в таблице текст, если он сам хранится в таблице-справочнике под определенным id, а в таблице, где ищем хранится только id? И как сделать этот поиск, если таких ссылок на индексы одного и того же справочника несколько? Желателен вариант без подзапросов и джойна, если возможно.
Пример структуры:
table1
---------
id
text_id1
text_id2
значения
1,1,2,
2,1,2,
3,3,1;
table2 (справочная)
---------
text_id
text_value
1, 'слово',
2, 'словесный',
3, 'словоформирование';
Дается поиск '%слово%' в table1 по всем полям.
Заранее спасибо.
Примечание:
>> у тебя неправильная структура базы данных.
Как-то не сразу соглашусь. Представь на примере новостей и категорий новостей. В каждой новости ты предлагаешь писать категорию в виде текста? Я делаю таблицу справочник категорий, а в самой записи новости пишется только id категории.
Примечание:
>> А если тебе нужно будет 10,20,30 категорий в одной новости? Тогда ты 30 полей добавлять будешь?
Ну здесь ты полностью прав и твоя идея мне теперь полностью понятна. Если бы категорий было множество, я бы именно так и сделал бы (делать кучу полей в таблице точно бы не стал). Вот только у меня сейчас уже работающий проект, который переделывать по уму выйдет дольше, чем делать новый :) Структура таблиц мало того, что сформирована, но и завязана на сам код. Учитывая, что я самоучка, а заказчик мечтает в режиме риалтайм, то переделка обойдется слишком дорого, хотя бы потому, что даже создание темповой таблицы с интерпретированными ключами выйдет "дешевле".
Завтра поищу где я видел в мане пример запроса без джойна. Пример: SELECT t1.name, t2.salary FROM employee AS t1, info AS t2 WHERE t1.name = t2.name;
Примечание:
>> OverHerz
Сделал на LEFT JOIN.
Пришлось расставлять синонимы через AS, ибо как ты уже говорил структура таблицы неправильная и в поисковой таблице записываются сразу несколько индексов при одной справочной таблице.
Ставлю тебе лучший, ибо упомянута крайне полезная ссылка.
Отдельное спасибо Epsiloncool - тоже помог советами. Жаль не могу разделить на вас баллы, не предусмотрено.
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.