2016-08-09 10 views
0

フロントエンドのWebユーザーがSQLの深淵に投げ込まれました。以下は、私たちの現在のSQLクエリのプロトタイプです:SQL - Select into into(複数の列)

INSERT INTO table (table column) 
SELECT ad.val1, web.val2, ad.val3 
FROM ad 
LEFT JOIN web 
ON ad.val 4 = web.val4 

私は次のことを試してみましたweb.val4

として我々は最近web.val5列を追加したと我々は同じ列に、それは情報だ挿入したいですALL句を使用します。

INSERT INTO table (table column) 
SELECT ad.val1, web.val2, ad.val3 
FROM ad 
LEFT JOIN web 
ON ad.val 4 = web.val4 
AND ad.val4 = web.val5 

しかし、私は0(またはNULL?)を取得し続けます。 LEFT JOINに追加できる特定の句があります。これは、同じテーブル内の異なる列の2つの異なる値に値を一致させることができますか?申し訳ありませんが、これは混乱している場合、私はそれを自分でほとんど理解していません。

+1

サンプルデータと期待される結果は参考になります... – sgeddes

答えて

0

あなたはそれを2回参加を検討して

INSERT INTO table (table column) 
SELECT ad.val1, web.val2, ad.val3 
FROM ad 
LEFT JOIN web 
ON ad.val4 = web.val4 
LEFT JOIN web w   //second join 
ON ad.val4 = w.val5 
0

はここに少し推測が、私はあなたの問題を理解していれば、あなたのand基準は、それがnull値を返す作っているように、その条件を一致させることができます。代わりに希望するorまたはin

INSERT INTO table (table column) 
SELECT ad.val1, web.val2, ad.val3 
FROM ad 
    LEFT JOIN web ON ad.val4 IN (web.val4, web.val5)