sql как с другой таблицей - PullRequest
0 голосов
/ 11 марта 2019

example

У меня есть две таблицы, в первой есть: значение1, значение2, значение3 Во-вторых: у меня полный адрес

Как использовать запрос, например:

select * from table2 where address like '%table1.value1%table1.value2%table1.value3%'

Ответы [ 3 ]

2 голосов
/ 11 марта 2019

Я думаю exists делает то, что вы хотите:

select t2.*
from table2 t2
where exists (select 1
              from table1 t1
              where t2.address like concat('%', t1.value1, '%', t1.value2, '%', t1.value3, '%')
             );

Тем не менее, необходимость сделать это предполагает, что что-то не так с вашей моделью данных.

0 голосов
/ 11 марта 2019

REGEXP может использоваться для сопоставления содержимого таблицы1 с таблицей2.

select address, value1, value2, value3
from table1, table2 
where 
address REGEXP value1 and
address REGEXP value2 and
address REGEXP value3;

Я чувствую, что like будет лучше использовать, если вам нужно соответствовать жестко заданному значению:

select address from table1 where address like '%staticvalue%'

См. Реализованный пример на db-fiddle

0 голосов
/ 11 марта 2019

Можно попробовать с этим?

select * from table2 where address like '%table1.value1%' OR address like '%table1.value2%' OR address like '%table1.value3%'

Но я думаю, что ваша модель данных должна быть нормализована (2NF и 3NF).

...