2014-06-10 2 views
0

customer 테이블에 subject_type_fk 테이블이 있다고 가정 해 보겠습니다. 우리는 테이블 person 또는 enterprise에있을 수있는 고객의 이름을 찾아야합니다. 그 두 테이블의 subject_type_fk 정의는에서 검색 할 수 있습니다. subject_type_fk는 0 또는 1 subject_fkperson 또는 enterprise에서 레코드의 기본 키를 정의 할 수 있습니다. 두 테이블 모두 name 열을 가져와야합니다 (실제로는 enterprise.enterpriseperson.last_name). Customer.customer이 입력 매개 변수로 제공됩니다. PostgreSQL을위한 그런 쿼리를 작성하는 방법은 무엇입니까?조건을 사용하여 SQL 쿼리 문을 분기하는 방법?


UPDATE

enter image description here

+0

당신이 테이블 정의를 게시 할 수 있습니다 (OP의 편집 후 편집)? –

+0

개인적으로'Customer','Person' 및'Enterprise' 테이블의 모든 필드를 하나의 테이블에 결합했습니다. 그런 다음'subject_type_fk'를 사용하여 읽은 필드를 확인하십시오. – Tony

+0

@ 토니, 당신은 쿼리 버전을 제공 할 수 있습니까? –

답변

1
select p.last_name 
from customer c join person p on c.subject_fk = p.person and c.subject_type_fk = 0 
union  
select e.full_name 
from customer c join enterprise e on c.subject_fk = e.enterprise and c.subject_type_fk = 1 

+1

또한 e.FullName! –

관련 문제