2012-04-13 11 views

答えて

2

いいえ、FROM句にCASE文を使用することはできません。あなたは、その値に基づいて関連テーブルからフィールドを引き出し、両方のテーブルに参加する必要があります:

SELECT 
    tale0.*, 
    CASE WHEN tale0.id = 1 THEN class.Column1 ELSE hamburger.Column1 END as Column1, 
    CASE WHEN tale0.id = 1 THEN class.Column2 ELSE hamburger.Column2 END as Column2, 
    ... 
FROM 
    table0, class, hamburger 
-- include join conditions 
+0

ありがとう、私はそれを試みます。 –

0

これにアプローチする別の方法は、あなたができるだけ多くを持っている必要があるだろう

SELECT TALE0.*, CLASS.*, NULL AS HF1, NULL AS HF2, NULL AS HF3 
    FROM TALE0 
    INNER JOIN CLASS 
    ON CLASS.whatever = TALE0.whatever 
UNION ALL 
SELECT TALE0.*, NULL AS CF1, NULL AS CF2, NULL AS CF3, HAMBURGER.* 
    FROM TALE0 
    INNER JOIN HAMBURGER 
    ON HAMBURGER.whatever = TALE0.whatever 

ですHF1、HF2、HF3などのフィールドをHAMBURGERのフィールドと同じように使用し、HF1、HF2、HF3などの代わりにHAMBURGERのフィールド名を使用します。同様に、CF1、CF2などはCLASSのフィールド名で置き換える必要があります。

幸運のベスト。

関連する問題