|
Сопоставление в запросе
| ☑ |
0
BORG
29.10.20
✎
02:26
|
Все привет! Может кто подскажет, есть ли решение в моем примере...
В общем есть запрос, в котором через левое соединение объединены две таблицы т1 и т2 по простому набору связей, типа т1.наименование = т2.наименование
вопрос следующий: можно ли тут и если да, то каким образом, применить оператор ПОДОБНО, но с условием сопоставления, в котором строка т1.наименование входит в строку табл2.наименование
|
|
1
youalex
29.10.20
✎
02:36
|
табл2.наименование ПОДОБНО "%" + т1.наименование +"%"
Производительность будет страдать
|
|
2
BORG
29.10.20
✎
02:56
|
(1) Спасибо огромное, очень помогли....а в чем будет проблема с производительностью? ...попробовал сформировать, вроде по скорости одно и тоже, возможно маленькая выборка просто просто там в самом деле огромный запрос с кучей условий и раньше в нем были простые связи, а сейчас понадобилось новое условие:)...в итоге сейчас проще дописать на скорую руку одну строку, а позже уже подумать как сделать по другому.
|
|
3
BORG
29.10.20
✎
03:06
|
(1) И что то не могу понять, почему работает только так - табл2.наименование ПОДОБНО "%" + т1.наименование +"%"
а, если написать т1.наименование ПОДОБНО "%" + табл2.наименование +"%", уже не работает), хотя надо именно чтобы т1 входило в т2
|
|
4
youalex
29.10.20
✎
03:37
|
(3)
Ну смотри. Например,
т1.наименование = "456"
табл2.наименование = "123456789"
табл2.наименование ПОДОБНО "%" + т1.наименование +"%" - это, получается, условно "123456789" = "...456..." (попали)
а вот т1.наименование ПОДОБНО "%" + табл2.наименование +"%" это будет как(тоже условно) "456" = "...123456789..." - явно нет.
(2)
выражения в условиях соединениях вообще не особо.
Стандарты(С) вообще ругаются на такое:
ПОДОБНО выполняется быстрее, если впереди нет знака % (если начало строки определено)
|
|
5
BORG
29.10.20
✎
03:44
|
(4) Понял, учту, спасибо еще раз
|
|