|
|
|
Запрос из трех таблиц
|
|||
|---|---|---|---|
|
#18+
Добрый день уважаемые форумчане. Всех с прошедшим Новым годом и наступающим Рождеством. Объясню картину Имеются три таблицы. 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 INNER JOIN t3 ON t3.id = t1.t3id INNER 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 второй таблицы) в этом ключе и действовать, вложенными запросами не очень хочется решить эту проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 14:47 |
|
||
|
Запрос из трех таблиц
|
|||
|---|---|---|---|
|
#18+
TrippalДобрый день уважаемые форумчане. Всех с прошедшим Новым годом и наступающим Рождеством. Объясню картину Имеются три таблицы. 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 сейчас выборка выглядит так: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. теперь по-русски, не получается написать запрос при котором будет одинаково работать следующая система поиска по полям t3.info,t2.info,t1.info t3.info, t1.info (так как не у всех записей есть информация из t2) Так же есть в t2 нулевая строка, нулевую информацию из которой берет запрос(на эту строку ссылаются все строки из t1 в которых нет id второй таблицы) в этом ключе и действовать, вложенными запросами не очень хочется решить эту проблемы. помедленнееее, пэжаллст, я зэписссываю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 14:59 |
|
||
|
Запрос из трех таблиц
|
|||
|---|---|---|---|
|
#18+
поправилпомедленнееее, пэжаллст, я зэписссываю А что именно? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 15:10 |
|
||
|
Запрос из трех таблиц
|
|||
|---|---|---|---|
|
#18+
Trippal, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. по логике то что вы хотите --Maxim Boguk www.postgresql-consulting.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 15:21 |
|
||
|
Запрос из трех таблиц
|
|||
|---|---|---|---|
|
#18+
Maxim BogukTrippal, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. по логике то что вы хотите --Maxim Boguk www.postgresql-consulting.ru макс, конкат , вотличь от такого же оператора, игнорабит нуллы, т.ч. вы зря коалестите внутре оного 2 ТС ты куй, куй, говорю, оно и выкуется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 15:34 |
|
||
|
Запрос из трех таблиц
|
|||
|---|---|---|---|
|
#18+
Maxim Boguk, по логике: есть три таблицы дома, улицы, деревни в таблице домов есть id дома, геометрия дома, id деревень (из таблицы деревень) и id улиц (из таблицы улиц), но не во всех домах есть id улиц, так как улиц в деревне просто нет, мне нужно найти геометрию дома и составной адрес по определенной форме id дома, название деревни, название улицы, номер дома, геометрия дома адрес разнесен в эти три таблицы то есть мы вводим Иваново Центральная 1 - получаем таблицу новую или Петрово 2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 15:36 |
|
||
|
Запрос из трех таблиц
|
|||
|---|---|---|---|
|
#18+
поправилMaxim BogukTrippal, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. по логике то что вы хотите --Maxim Boguk www.postgresql-consulting.ru макс, конкат , вотличь от такого же оператора, игнорабит нуллы, т.ч. вы зря коалестите внутре оного 2 ТС ты куй, куй, говорю, оно и выкуется хотя макс возможно вот так хотел сказать шар хрустальный жеж мутный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 15:40 |
|
||
|
Запрос из трех таблиц
|
|||
|---|---|---|---|
|
#18+
TrippalMaxim Boguk, по логике: есть три таблицы дома, улицы, деревни в таблице домов есть id дома, геометрия дома, id деревень (из таблицы деревень) и id улиц (из таблицы улиц), но не во всех домах есть id улиц, так как улиц в деревне просто нет, мне нужно найти геометрию дома и составной адрес по определенной форме id дома, название деревни, название улицы, номер дома, геометрия дома адрес разнесен в эти три таблицы то есть мы вводим Иваново Центральная 1 - получаем таблицу новую или Петрово 2для поиска дешевле разложить регекспом на элементы, вычислить количество (а тем самым - и назначение элемента). но при составных названиях будет сбоить. типа "малые пердюки 2" -- малые -- деревня, пердюки -- улицца ну а всякие верхненижние подзалупинки со страшего генарал атамана кривожопова улицей -- вообще празднк души и т.п. тут уж о скорости сложно, тут в ваши конкаты от нездоровья и подашься хотя я бы регекспанул с вариативностью -- битмапом-ором несколько вариаций обсчитать -- это не сексканы полные сконкатенатить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 15:51 |
|
||
|
Запрос из трех таблиц
|
|||
|---|---|---|---|
|
#18+
поправил, совсем сложный вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 16:14 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=117&tid=1998266]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 316ms |

| 0 / 0 |
