用JOIN替换-SQL

时间:2019-06-13 01:51:23

标签: sql

我需要帮助以了解我做错了什么...我是初学者,所以请问一个简单的问题!

我有两个表要在其中进行联接,在其中一列中,我不得不使用REPLACE来删除对我不感兴趣的文本“ RIxRE”。

在表1中,这是id_notification列的原始文本:RIxRE-1787216-BSB,这是使用REPLACE时返回的文本:1787216-BSB 在第2列中,这是存在的文本:1787216-BSB

但是,出现以下错误:

  

#1054-“子句”中的未知列“ a.id_not”

SELECT *, REPLACE(a.id_notificacao,'RIxRE','') AS id_not
FROM robo_qualinet_cadastro_remedy a
JOIN (SELECT * FROM painel_monitoracao) b ON a.id_not = b.id_notificacao

1 个答案:

答案 0 :(得分:0)

您不能在FROM之后的WHERE子句或SELECT子句中再次使用列别名(根据数据库的不同,可能也不能使用其他子句)。

因此,重复表达式:

SELECT *, REPLACE(a.id_notificacao, 'RIxRE', '') AS id_not
FROM robo_qualinet_cadastro_remedy rqcr JOIN 
     painel_monitoracao pm
     ON REPLACE(rqcr.id_notificacao, 'RIxRE', '') = pm.id_notificacao;

注意:

  • 使用表别名的意思是某些东西,例如能名的缩写。
  • FROM子句中不需要子查询。
  • 我怀疑如果需要REPLACE()来满足JOIN的条件,那么您的数据模型就会出现问题,但这与该问题不同。