2012-11-18 4 views
0

tblCluster, tblServer 및 tblDatabase라는 테이블 관계가 3 개 있습니다. 서버가 클러스터 아래에 있고 데이터베이스가 서버 아래에 있습니다. tblCluster의 PK는 ClusterName입니다. tblServer의 Pk는 ServerName이고 FK는 ClusterName입니다. tblDatabase의 PK는 DatabaseName이고 FK는 Servername입니다. ClusterName 아래의 모든 ServerName과 DatabaseName을 Cluster5로보고 싶습니다.SQL을 사용하여 확실하지 않음

과 같은 쿼리를 써야합니까
SELECT tblCluster.ClusterName, tblServerName.ServerName, tblDatabase.DatabaseName 
FROM tblCluster 
JOIN tblServer 
ON tblCluster.ClusterName = tblServer.ClusterName 
INNER JOIN tblDatabase 
ON tblServer.ServerName = tblDatabase.ServerName 
WHERE tblCluster.ClusterName = Cluster5; 

데이터베이스가 비어 있어도 servername이 발견되면 나는 여전히 datbasename null의 결과 테이블을 표시하고자합니다.

답변

2

INNER JOIN 대신 LEFT JOIN을 사용해 보셨습니까? 대개 이러한 요구 사항에 대한 해결책입니다. Look here에 몇 가지 예가 들어있는 자세한 설명이 나와 있습니다.

+0

감사합니다. LEFT Join이라고 생각했습니다. – StudentIT

+0

다행 당신을 위해;). –

관련 문제