別のテーブルの入力値に基づいてテーブルを選択しようとしています。言わせてFROMの後にテーブルを選択してmySQL CASEを実行できますか?
SELECT tale0.*,class.*,hamburger.*
FROM
CASE tale0.id=1
THEN class
END
CASE tale0.id=2
THEN hamburger
これは行く方法ですか、別の方法がありますか?
別のテーブルの入力値に基づいてテーブルを選択しようとしています。言わせてFROMの後にテーブルを選択してmySQL CASEを実行できますか?
SELECT tale0.*,class.*,hamburger.*
FROM
CASE tale0.id=1
THEN class
END
CASE tale0.id=2
THEN hamburger
これは行く方法ですか、別の方法がありますか?
いいえ、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
これにアプローチする別の方法は、あなたができるだけ多くを持っている必要があるだろう
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のフィールド名で置き換える必要があります。
幸運のベスト。
ありがとう、私はそれを試みます。 –