ホームページ >データベース >mysql チュートリアル >MySQL で動的テーブル名を使用して条件付き結合を実行するにはどうすればよいですか?
MySQL での動的テーブル名の条件付き結合
MySQL では、条件付き基準に基づいて結合を実行でき、データをマージできます。異なるテーブルから動的に取得します。他のテーブルの名前を表す列挙値を持つ「type」列を含むテーブルがある次のシナリオを考えてみましょう。
目的は、「type」の値に基づいて特定のテーブルとの結合を実行することです。カラム。例:
switch($type) { case 'table1': JOIN table1; break; case 'table2': JOIN table2; break; }
解決策
残念ながら、MySQL は switch case 構文を直接使用した条件付き結合をサポートしていません。ただし、CASE ステートメントと LEFT JOIN ステートメントを組み合わせて使用すると、同様の機能を実現できます。次のクエリは、このアプローチを示しています。
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'
このクエリでは、CASE ステートメントが一連の LEFT JOIN 操作に置き換えられます。各 LEFT JOIN の ON 句は、「type」列の値に基づいて結合条件を指定します。
以上がMySQL で動的テーブル名を使用して条件付き結合を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。