2

LEFT JOIN2 つのテーブルで実行しようとしています。どちらにも WEBSITE という名前の列があります。1 つはプロトコル like が入力され、もう 1 つはプロトコル like が入力されていhttp://abc.comませんabc.com

これらのテーブル wrt 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が 2 つの異なるテーブルまたはビューの場合、次のように結合条件で関数を使用し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

ここで、テーブルを結合していると言っていますが、「SiteName」WEBSITE columnを使用しています。WITHPROTOCOLTABLE.SITENAME = WITHOUTPROTOCOLTABLE.WEBSITE次に、混乱を避けるためにテーブルのエイリアスを作成します。

クエリ:

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 に答える