私は、この時点で(この時点で、その列でどのように/どの値が使用されているかを変更することはできません)同じ値。したがって、最初の表の列の値によっては、2番目の表の特定の値を結合/選択する必要があります。ここで私が何をしようとしています何の(明らかに動作しません)例です。コメントテーブル内の対応するレコードが存在する場合、外部結合のIF/CASE
SELECT Alert.*, Comments.Comment FROM
Alert
LEFT OUTER JOIN Comments ON Comments.ObjectId = Alert.ObjectId AND
CASE
WHEN Alert.ObjectType = 'U' THEN Comments.ObjectType = 'USER'
WHEN Alert.ObjectType = 'E' THEN Comments.ObjectType = 'EVENT'
END CASE
は、だから私は警告テーブルからすべてをしたいがして、私はそれらをしたいです、あまりにも。しかし、適切な/一致するObjectTypeに対してのみ。
私はCASEとIFの両方を使用してこれを試しましたが、動作させることができません。このようなことは可能でしょうか?
OPの元のクエリでは、*値を返しています(具体的にはブール値を 'ON'節に直接返しています)。より簡潔です)。私が理解するのを助けることができますか? :) – eggyal
@eggyal、私はすべての細部の専門家ではありませんが、ブール式はすべての状況で期待されるように機能しません。 'a = b'を条件式ロジック、if文などで使うことができるブール式ですが、どこでも使用または割り当て可能なブール値を返しません。 –
これは機能しません。私は取得していますエラーは、次のとおりです。 「あなたはあなたのSQL構文でエラーが発生している。近くに 『CASE』を使用する権利構文 のためのMySQLサーバのバージョンに対応 ことを手動で確認し、」 を適切な構文ということですか? 私はv5を実行しています。5 – Christoph