0

次のように、1つの列の値に応じて異なるテーブルを結合したいテーブルがあります(これは機能しませんが、私の例です):

SELECT * FROM table1 JOIN (CASE WHEN table1_column1=1 THEN table2 ON table2_column1=table1_column2 END) WHERE table1_column3='hello'

全体として、列には 4 つの値があり、他のテーブルを呼び出します。これは実行可能ですか?

編集:私が求めているものを明確にする必要があると思います。table1_column1 の値に応じて、JOIN で特定のテーブルと列をフェッチする必要があります。たとえば、t1c1=1 の場合、table1_column2 で table2_column1 を結合する必要があります。ただし、t1c1=2 の場合は、table1_column2 で table5_column1 を結合する必要があります。などなど

繰り返しますが、これは実行可能ですか? 2 つの個別のクエリを使用すると、簡単にスクリプト化できます。ただし、1 つのクエリを使用したいだけです。

4

2 に答える 2

0
SELECT * FROM 
table1 JOIN table2 ON table2_column1=table1_column2 AND table1_column1=1

UNION

 SELECT * FROM 
table1 JOIN table3 ON table2_column1=table1_column2 AND table1_column3='hello'

それはうまくいくかもしれません

于 2012-10-11T03:06:41.047 に答える
0
SELECT * FROM table1 
JOIN  table2 ON table2_column1=table1_column2 and table1_column1=1 
WHERE table1_column3='hello'
于 2012-10-11T03:06:48.790 に答える