2

我正在尝试LEFT JOIN在两张桌子上执行 a。两者都有一个名为 WEBSITE 的列。一个填充了类似的协议http://abc.com,另一个填充了类似的协议abc.com

我正在尝试在 WEBSITE 列中加入这些表。我试图替换协议,然后像这样执行连接:

SELECT replace(WEBSITE, 'http://', '') as SITENAME FROM WITHPROTOCOLTABLE LEFT JOIN WITHOUTPROTOCOLTABLE ON (WITHPROTOCOLTABLE.SITENAME = WITHOUTPROTOCOLTABLE.WEBSITE)

但我得到错误:column WITHPROTOCOLTABLE.SITENAME does not exist

我该如何执行JOIN. 请指教。


编辑:

表格:

WITHPROTOCOLTABLE

website           somedata
----------------|---------------
http://abc.com  |  abcdef
http://xyz.com  |  xyzabc

WITHOUTPROTOCOLTABLE

website
-------
abc.com
xyz.com
4

4 回答 4

2

如果您的WITHPROTOCOLTABLEWITHOUTPROTOCOLTABLE是两个不同的表或视图,则REPLACE在您的加入条件中使用该函数,如下所示:

SELECT replace(WEBSITE, 'http://', '') as SITENAME
FROM WITHPROTOCOLTABLE
LEFT JOIN WITHOUTPROTOCOLTABLE
      ON (REPLACE(WITHPROTOCOLTABLE.WEBSITE, 'http://', '')
           = WITHOUTPROTOCOLTABLE.WEBSITE)
于 2013-03-22T07:17:48.707 回答
1

您在这里说您正在加入表,WEBSITE column但您使用了WITHPROTOCOLTABLE.SITENAME = WITHOUTPROTOCOLTABLE.WEBSITE即“SiteName”。第二件事是为您的表格设置别名以避免混淆。

询问:

SELECT replace(wp.WEBSITE, 'http://', '') as SITENAME FROM WITHPROTOCOLTABLE wp
LEFT JOIN WITHOUTPROTOCOLTABLE wop ON (REPLACE(wp.WEBSITE, 'http://', '') = wop.WEBSITE)
于 2013-03-22T07:18:25.987 回答
0

为值/计算/任何使用AS的别名不会将别名放入特定的表中。采用

LEFT JOIN WITHOUTPROTOCOLTABLE ON SITENAME = WITHOUTPROTOCOLTABLE.WEBSITE

加入表格。

于 2013-03-22T07:17:56.143 回答
0

你好试试这个

SELECT replace(WEBSITE, 'http://', '') as SITENAME FROM WITHPROTOCOLTABLE
 LEFT JOIN WITHOUTPROTOCOLTABLE ON (replace(WEBSITE, 'http://', '') = WITHOUTPROTOCOLTABLE.WEBSITE)
于 2013-03-22T07:19:36.150 回答