#sql #string #inner-join #sql-like
#sql #строка #внутреннее соединение #sql-подобный
Вопрос:
У меня есть две таблицы TableA и TableB.
Я хочу написать запрос, в котором он отображает имя и идентификатор, если строковое значение идентификатора TableA является подстрокой имени TableB. Я попробовал оператор like, но, похоже, не могу заставить его работать.
tableA
id |
bob
cat
sky
tableB
name |
bobby
catlyn
bret
answer table
id |name |
bob bobby
cat catlyn
Комментарии:
1. отправьте свой
tried
запрос тоже. и СУБД.2. Что это за движок?
3. также это неправильный способ обработки данных. у вас должны быть ключи для привязки таблицы.
4. Что именно «не работает»? Ваши результаты не совпадают с ожидаемыми? Итак, предоставьте свой запрос и его вывод. Если у вас ошибка, добавьте сообщение об ошибке в виде обычного текста.
5. Это был просто пример данных. Я попробовал что-то вроде этого «где TableB, как%tableA.id %». Но это не работает, поскольку это не строковое значение, и использование для объединения не работает.
Ответ №1:
Вы можете присоединиться при like
условии:
select a.id, b.name
from tablea a
inner join tableb b on b.name like '%' || a.id || '%'
Вы не указали, какую базу данных вы используете, поэтому используется стандартный оператор конкатенации ||
строк; некоторые базы данных используют что-то другое (например: MySQL и SQLServer имеют функцию concat()
).