MySQL の条件付き結合
別のテーブルのテーブル名を表す列挙値を含むテーブルを扱う場合、以下を実行する必要があります。タイプ値に基づく結合。 MySQL は動的結合をサポートしていないため、これは MySQL に特有の課題を引き起こします。
ただし、case 式と複数の結合を使用して回避策を達成できます。
簡単な例はテーブルです。 id1、id2、type の列があります。 type 列には別のテーブルの名前が含まれます。 type の値に基づいて type テーブルを結合するには、次のアプローチを使用できます:
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'
左JOIN
t3 ON t3.id = t.id AND t.type = 't3'
このクエリは、type の値に基づいて t2 テーブルと t3 テーブルに対して左結合を実行します。 type 値が t2 と一致する場合、t2 の id 列を id2 として返します。同様に、type 値が t3 と一致する場合、t3 からの id 列を id3 として返します。
動的結合ほど洗練されていませんが、このメソッドでは MySQL の列挙されたテーブル名に基づいた条件付き結合が可能です。
以上がMySQL で列挙されたテーブル名に基づいて条件付き結合を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。