Ошибка соединения двух таблиц с использованием INNER JOIN с ключевым словом replace - PullRequest
0 голосов
/ 10 февраля 2020

Я пытаюсь объединить 2 таблицы с INNER JOIN, но выгода заключается в том, что я хочу использовать ключевое слово REPLACE, поскольку в другой таблице в тексте есть дополнительный символ. Я написал запрос как:

SELECT
    keeper_details.*,
    keepers.*
FROM
    keeper_details
    INNER JOIN keepers ON keeper_details.cphh = keepers.CPHH SET keepers.CPHH = REPLACE(keepers.CPHH,"/","")

Но я получаю сообщение об ошибке:

1064 - у вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей MySQL версии сервера, чтобы найти правильный синтаксис для использования рядом с 'SET keepers.CPHH = REPLACE (keepers.CPHH, "/", "")

Мой общий текст на keeper table(CPHH) = "XXXXXXXX" и на keeper_details table(CPHH) = XX/XXX/XXXX

Я надеюсь, что все ясно. Я не знаю, где я делаю неправильно! Любые предложения будут отличной помощью! Заранее спасибо!

1 Ответ

4 голосов
/ 10 февраля 2020

Этого должно быть достаточно:

SELECT keeper_details.*
       , keepers.*
FROM keeper_details
INNER JOIN keepers
on keeper_details.cphh = REPLACE(keepers.CPHH,"/","");

Когда вы используете слово on, вы сообщаете запросу, что использовать в качестве «условия» при объединении двух таблиц. Поэтому, когда вы удаляете символ '/', при объединении все должно быть в порядке.

Я также рекомендую вам использовать одинарные кавычки при использовании строковых значений:

SELECT keeper_details.*
       , keepers.*
FROM keeper_details
INNER JOIN keepers
on keeper_details.CPHH = REPLACE(keepers.CPHH,'/','')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...