하나 개의 테이블에 여러 번 참여 모든 게임과 플레이어의 성별을 선택하고 싶습니다. null playerIds를 어떻게 넘을 수 있습니까? this explanation에서나는 두 개의 테이블이 널 (null) FKS 상황에서
, 나는 답이있을 거라고 생각합니다 :
SELECT Games.id, p1.gender, p2.gender
FROM Games JOIN Players p1 on player1Id = p1.id
JOIN Players p2 on player2Id = p2.id
그러나,이 널 (null)로 player1Id 또는 player2Id 중 하나가 있습니다 어떤 게임을 반환하지 않습니다. 가능한 경우에 연결된 플레이어가있는 모든 게임을 에 표시 할 수있는 방법이 있습니까?
감사합니다.
'Games.player1Id'이 될 수'NULL'과와'Games.player2Id'이 될 수'NULL'입니까? 키가 없어서 디자인상의 결함 인 것 같습니다. 즉 테이블이 아닙니다. 솔로 플레이어 게임과 두 명의 플레이어 게임을 모델링하는 다른 방법을 찾아야한다고 생각합니다. – onedaywhen
@onedaywhen 이것은 실제 데이터베이스가 아닙니다. 제가 질문을 할 수 있도록 예제 테이블을 만들었습니다. 전에 내가이 문제를 겪었 기 때문에 단지 궁금하다. – mphair
당신은 SQL DML ('쿼리')을 작성하는 것이 얼마나 자주 SQL DDL (테이블 디자인)의 결과인지 놀랄 것입니다. SQL DDL에 사용 된 데이터 요소 이름은 설계자의 의도에 대해 많은 것을 보여줍니다. 그래서 우리에게 기회를주고 실제 스키마를 게시하십시오 :) 그렇지 않으면 스키마가 좋을 수도 있고 오히려 그것이 리콜됩니다;) – onedaywhen