ID 相関に関する複数のテーブル データベースのクエリ
ホストとテンプレートが同じテーブルに格納されているデータベースのクエリを実行する際に問題が発生しました。これに対処するには、内部結合とエイリアスの組み合わせを利用して、必要な情報を抽出できます。
次のクエリを使用して、ID 列に基づいてホスト名とテンプレート名を取得できます:
SELECT h1.name as host_name, h2.name AS template_name FROM hosts_template AS t JOIN hosts AS h1 ON t.hostid = h1.hostid JOIN hosts AS h2 ON t.hosttemplateid = h2.hostid
このクエリでは、hosts_template テーブルに別名 t が与えられます。追加の 2 つのエイリアス h1 と h2 がホスト テーブルに使用されます。 h1 エイリアスはホスト名を取得するために使用され、h2 はテンプレート名を取得します。
内部結合ステートメントは、ホスト ID とテンプレート ID をそれぞれ host_name 列と template_name 列に接続します。結果のクエリは、hosts_template テーブルの各エントリのホスト名とテンプレート名を返します。
エイリアスと複数の内部結合を使用することで、複数のテーブルが同じ ID 列を共有している場合でも、複数のテーブルのデータを効果的にクエリできます。この手法を使用すると、さまざまなテーブルから特定の列を取得し、それらを組み合わせて必要な情報を取得できます。
以上が複数の結合を使用して単一テーブル データベースからホスト名とテンプレート名を関連付ける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。