당신은 자신을 테이블에 가입 할 수 있습니다 :
SELECT p.itemcode, p.itemname, p.replacedbycode, r.itemname, j.projectname
FROM product as p JOIN product as r ON(p.replacedbycode = r.itemcode)
JOIN project as j ON(p.projectcode = j.projectcode);
당신이 다음에 COALESCE
을 사용할 수있는 데이터베이스를 사용하는 더 관용적 방법입니다 replacedbycode
오히려 빈에 비해 acutally null
이라는 규칙을 사용하는 경우 두 번째 경우에 내가 지정한 대체이없는 행을 포함 왼쪽 외부 조인 사용하고 있음을
SELECT p.itemcode, p.itemname, p.replacedbycode, COALESCE(r.itemname, "no replacement"), j.projectname,
FROM product as p LEFT JOIN product as r ON(p.replacedbycode = r.itemcode)
JOIN project as j ON(p.projectcode = j.projectcode);
참고 : 대체 항목이 없습니다 경우 꽤 오류 메시지를 인쇄합니다.
replacebycode
열에는 itemcode
열에 외래 키 제약 조건이 있어야합니다.이 경우 값으로 빈 문자열을 넣을 수 없어야합니다.
사용중인 RDBMS (예 : SQL Server, Oracle, Postgres, MySQL)에 질문을 태그하십시오. –