집 >데이터 베이스 >MySQL 튜토리얼 >호스트-템플릿 관계를 표시하기 위해 Zabbix를 쿼리하는 방법은 무엇입니까?
Zabbix에서 호스트-템플릿 관계를 표시하는 쿼리
이 쿼리는 Zabbix 테이블에서 데이터를 검색하여 어떤 호스트가 특정 템플릿을 사용하는지 표시하는 데 도움이 됩니다. 문제는 호스트와 템플릿이 모두 호스트의 경우 11813, 템플릿의 경우 11815와 같은 ID가 혼합되어 동일한 테이블에 저장된다는 사실입니다.
이 문제를 해결하기 위해 연결을 설정하는 호스트_템플릿 테이블을 소개합니다. 세 개의 열(host_template ID, 호스트 ID, 템플릿 ID)을 통해 호스트와 템플릿 사이를 연결합니다.
호스트 테이블에는 호스트 ID 및 템플릿과 같은 중요한 필드가 포함되어 있습니다. 이름. 호스트 테이블에 templateid 열이 있지만 사용되지 않습니다.
hosts_templates 테이블에서 어떤 호스트가 어떤 템플릿을 사용하는지 확인할 수 있습니다. 그러나 ID를 해당 이름으로 변환해야 할 때 문제가 발생합니다.
이전 시도
다음 초기 쿼리는 부분적인 솔루션을 제공하는 것을 목표로 했지만 중복이 발생했습니다. 문제:
select name, name from hosts_templates inner join hosts on hosts_templates.hostid = hosts.hostid; select name, name from hosts_templates inner join hosts on hosts_templates.templateid = hosts.hostid;
솔루션
솔루션에는 각각 서로 다른 테이블 별칭을 사용하는 두 개의 조인이 필요합니다.
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
이 쿼리에서 호스트_템플릿 테이블은 t로 별칭이 지정되고, 호스트 테이블은 호스트 이름과 템플릿을 구별하기 위해 h1과 h2로 별칭이 지정됩니다. 이름.
위 내용은 호스트-템플릿 관계를 표시하기 위해 Zabbix를 쿼리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!