Mehrere Tabellen aus einer einzelnen ID-Spalte abfragen
In einer kürzlich durchgeführten Abfrage wollte ein Benutzer anzeigen, welche Hosts bestimmte Vorlagen von Zabbix verwendeten Tisch. Allerdings wurden sowohl Hosts als auch Vorlagen in derselben Tabelle aufgeführt, was ihre Unterscheidung erschwerte.
Um dieses Problem zu beheben, verwies der Benutzer auf eine zweite Tabelle, hosts_templates, die die Korrelation zwischen Hosts und Vorlagen bereitstellte. Die hosts_templates-Tabelle, die Spalten für host_template ID, Host-ID und Template-ID enthält, bot die Daten, die zum Verbinden der Hosts und Template-Namen erforderlich sind.
Lösung
Zu erreichen Um die gewünschte Ausgabe zu erhalten, ist eine Abfrage mit Double Joins notwendig:
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
In diesem Abfrage:
Das obige ist der detaillierte Inhalt vonWie rufe ich Host- und Vorlagennamen aus mehreren Zabbix-Tabellen mithilfe einer einzigen ID-Spalte ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!