ホームページ > データベース > mysql チュートリアル > MySQL で動的テーブル名を使用して条件付き結合を実行するにはどうすればよいですか?

MySQL で動的テーブル名を使用して条件付き結合を実行するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-05 08:17:08
オリジナル
202 人が閲覧しました

How to Perform Conditional Joins with Dynamic Table Names in 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート