我正在尝试对两个表执行LEFT JOIN
。两者都有一个名为 WEBSITE 的列。一个填充了诸如 http://abc.com
之类的协议(protocol),另一种则没有填充诸如 abc.com
之类的协议(protocol)。
我正在尝试加入这些表。网站专栏。我尝试替换协议(protocol),然后像这样执行连接:
SELECT replace(WEBSITE, 'http://', '') as SITENAME FROM WITHPROTOCOLTABLE LEFT JOIN WITHOUTPROTOCOLTABLE ON (WITHPROTOCOLTABLE.SITENAME = WITHOUTPROTOCOLTABLE.WEBSITE)
但我收到错误:columnWITHPROTOCOLTABLE.SITENAME 不存在
如何执行JOIN
。请指教。
编辑:
表格:
WITHPROTOCOLTABLE
website somedata
----------------|---------------
http://abc.com | abcdef
http://xyz.com | xyzabc
WITHOUTPROTOCOLTABLE
website
-------
abc.com
xyz.com
最佳答案
如果您的 WITHPROTOCOLTABLE
和 WITHOUTPROTOCOLTABLE
是两个不同的表或 View ,则在连接条件中使用 REPLACE
函数,如下所示:
SELECT replace(WEBSITE, 'http://', '') as SITENAME
FROM WITHPROTOCOLTABLE
LEFT JOIN WITHOUTPROTOCOLTABLE
ON (REPLACE(WITHPROTOCOLTABLE.WEBSITE, 'http://', '')
= WITHOUTPROTOCOLTABLE.WEBSITE)
关于sql - 如何在 LEFT JOIN 中使用 Replace() 后生成的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15564769/