ホームページ  >  に質問  >  本文

MySQL クエリを使用して 1 つの ID 列から複数のテーブルを表示する方法

Zabbix テーブルでどのホストがどのテンプレートを使用しているかを表示したいこのクエリを見つけようとしています。唯一の問題は、ホストとテンプレートが同じテーブルに登録されていることです。テーブル内ではこれらが混在しています。たとえば、ID 11813 はホスト、11815 はテンプレートです。 ここで、これら 2 つの関係を定義するテーブル hosts_templates を見つけました。

テーブルには 3 つの列があります。 ホストテンプレート ID、ホスト ID、テンプレート ID

hosts テーブルには多くの列がありますが、ホスト ID、名前も含まれます。ホスト ID にはホストとテンプレートが含まれます。テーブルホストには templateid 列がありますが、使用されません。

テーブル hosts_templates で、どのホストがどのテンプレートを使用しているかを確認できます。唯一の問題は、ID が表示され、その ID に一致する名前を確認したいことです。 私がこれまでに持っているもの:

テーブル hosts_templates の出力

名前からの出力、テーブル hosts からのホスト ID

これまでに試したこと:

リーリー

これらのクエリの出力には、解決策の半分が示されていますが、重複があります。

問題は、2 番目の列に別の名前を選択できないため、最初の列が繰り返されるだけであり、これは私が望むものではありません...そして、すでに内部でホスト ID を結合しているため、 2 列目ではそれはできません。したがって、上記の 2 つの SQL クエリを組み合わせる必要があります。近づいているような気がするのですが、どうしても掴めません。

ご協力いただければ幸いです。

P粉207483087P粉207483087229日前357

全員に返信(2)返信します

  • P粉670838735

    P粉6708387352024-03-27 09:23:21

    これは基本的な質問です。チェーン結合や、異なるテーブルから同じ列名にアクセスするなどの SQL 構文について詳しく知る必要があります。

    サンプルコード:

    リーリー

    返事
    0
  • P粉729436537

    P粉7294365372024-03-27 00:41:12

    2回参加する必要があります。テーブルを区別できるように、テーブルに異なる別名を付けます。

    リーリー

    返事
    0
  • キャンセル返事