Добрый день уважаемые форумчане. Всех с прошедшим Новым годом и наступающим Рождеством.
Объясню картину Имеются три таблицы. t1, t2, t3 Главная считается t1 (id, info, t2id, t3id) Второй t2 (id, info, t3id) Третьей t3 (id,info) В t1 - t3id есть у всех записей, а t2id - у большинства(75%)(!!!самая большая загвоздка) выбрать необходимо следующую последовательность t1.id, t3.info, t2.info, t1.info, при этом есть вводные данные -конкатенация t3.info, t2.info, t1.info сейчас выборка выглядит так:
SELECT t1.id,
t3.info,
t2.info,
t1.info
FROM t1
LEFT JOIN t3 ON t3.id = t1.t3id
LEFT JOIN t2 ON t2.id = t1.t2id
WHERE (concat(t3.info,' ', t2.info,' ', t1.info)) ILIKE ('%'||(REPLACE('текстовое наполнение полей',' ','%'))||'%')
теперь по-русски, не получается написать запрос при котором будет одинаково работать следующая система поиска по полям t3.info,t2.info,t1.info t3.info, t1.info (так как не у всех записей есть информация из t2) Так же есть в t2 нулевая строка, нулевую информацию из которой берет запрос(на эту строку ссылаются все строки из t1 в которых нет id второй таблицы) в этом ключе и действовать, вложенными запросами не очень хочется решить эту проблемы. |