Возможный дубликат:
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, а не фактическое значение столбца.
Вам нужно только конкатенировать строки, вы также можете выполнить поиск и заменить.
SELECT
a.first_name,
b.age
FROM names a
JOIN ages b
ON b.full_name LIKE '%' + a.first_name + '%'
ON b.full_name LIKE CONCAT('%', a.first_name, '%')
Вы можете использовать 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)
если есть совпадение, соединение будет успешным.