MySQL の条件結合: 列挙型に基づいてテーブルを動的に結合する
問題:
列 id1 を持つ MySQL テーブル スキーマを考えてみましょう。 id2 とタイプ。 type 列は、別のテーブルの名前を指定する列挙値です。タスクは、type の値に基づいて、指定されたテーブルとの結合を実行することです。
たとえば、次の条件付き結合を実行するとします。
解決策:
MySQL は条件付き結合を直接サポートしていませんが、回避策の 1 つは、case 演算子を使用して複数テーブルの左結合を使用することです。
SELECT t.id, t.type, t2.id AS id2, t3.id AS id3 FROM t LEFT JOIN t2 ON t2.id = t.id AND t.type = 't2' LEFT JOIN t3 ON t3.id = t.id AND t.type = 't3'
このクエリ内:
注:
このソリューションでは、type の値に関係なく、結合される可能性のあるすべてのテーブルがデータベース内に存在する必要があります。
以上がMySQL で列挙型に基づいて条件付き結合を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。