SQL Присоединиться к столбцу LIKE другой столбец

Возможный дубликат:
mysql присоединить запрос, используя как?

Я хочу сделать соединение, где один столбец содержит строку из другого столбца таблицы:

SELECT
a.first_name,
b.age
FROM names a
JOIN ages b
ON b.full_name LIKE '%a.first_name%'

Возможно ли это? Я использую MySQL. Конечно, вышеуказанный запрос не будет работать, так как LIKE '% a.first_name%' просто ищет строку a.first_name, а не фактическое значение столбца.

Ответы

Ответ 1

Вам нужно только конкатенировать строки, вы также можете выполнить поиск и заменить.

SELECT
    a.first_name,
    b.age
FROM names a
JOIN ages b
ON b.full_name LIKE '%' + a.first_name + '%'

Ответ 2

Вы можете использовать CONCAT:

SELECT
  a.first_name,
  b.age
FROM
  names a JOIN ages b
    ON b.full_name LIKE CONCAT('%', a.first_name, '%')

а также LOCATE, который возвращает позицию первого вхождения a.first_name в b.full_name:

SELECT
  a.first_name,
  b.age
FROM
  names a JOIN ages b
  ON LOCATE(a.first_name, b.full_name)

если есть совпадение, соединение будет успешным.