Gang, GangMember 및 Neighborhood의 세 가지 테이블이있는 SQL Server 데이터베이스가 있습니다. 이 테이블은 다음과 같이 구성되어 있습니다 :SQL - 왼쪽 조인과 내부 조인을 함께 사용
Neighborhood
------------
ID (non-null)
Name (non-null)
Gang
----
ID (non-null)
Name (non-null)
NeighborhoodID (nullable)
GangMember
----------
ID (non-null)
GangID (non-null)
Name (non-null),
Position (nullable)
내가 갱단 멤버 (예 그들은 여러에 속할 수)에 속하는 모든 갱을 얻을 필요가있다. 이웃이 있다면, 나는 그걸 돌려 줄 필요가있다. 나는의 형태로 설정 내 결과 원하는 : gang.name, neighborhood.name, member.position을
지금까지 내가 여기 왔 : 갱은이 없을 수 있습니다
SELECT
g.[Name],
'' as 'Neighborhood' /* This what I don't know how to do */
m.[Position]
FROM
[Gang] g,
[GangMember] m
WHERE
m.[GangID]=g.[ID]
때문에 이웃, 나는이 쿼리를 어떻게 완료 해야할지 모르겠다. 누군가 나를 도울 수 있습니까? 감사! 다음과 같이 왼쪽을 할 수
SELECT
g.[Name],
n.[Name] as 'Neighborhood',
m.[Position]
FROM
[Gang] g INNER JOIN [GangMember] m ON m.[GangID]=g.[ID]
LEFT OUTER JOIN [Neighborhood] n ON g.[NeighborhoodID] = n.[ID]
당신이 모델의 일부 업데이트 이상 및 기타 문제가있는 것 같아요. 나는 갱단 멤버가 무엇인지 제대로 정의했다고 생각하지 않습니다. "갱단 멤버가 속한다 (예, 복수 회원에 속할 수 있음)"는 모순 된 것처럼 보입니다. 아마도 당신은 같은 사람이 같은 갱단의 일원이 될 수 있다는 것을 의미합니까? 그렇다면 다른 이름으로 (또는 같은 이름으로) 자신을 보호 할 수있는 다른 갱단에 알려질 수 있습니다. 갱단과 반 조직적 성격 사이에서 경쟁의 전통을 알면 어느 기관이 갱단원 ID의 신뢰할 수있는 출처가 될지 상상하기 어렵습니다. – onedaywhen
명확히하기 위해 : 나는 당신의'GangMember' 테이블을 그 사람을 모델링하기위한 하나의 테이블 (합법적 인 이름, 지문, DNA 등과 같은 식별자를 가질 수있는 테이블)과 두 모델 간의 관계를 모델링하기위한 두 개의 테이블로 나눌 필요가 있다고 생각합니다. 사람과 그녀의 갱 (나는 '이름'으로 알려진 것 이외의 어떤 식별자도 상상할 수 없다.). – onedaywhen