Postgresql 열을 선택하거나 다른 아래에 동일한 별칭에 따라 값의 세 번째 열에

0

질문

나는 데이터베이스를 가진 스키마 단순화할 수 있습에서 이 방법:제품 테이블,두 개의 테이블을 포함하는 값을 풍부하게 설명의 제품입니다. 하고 싶 선택 쿼리도 나를 표시하는 제품 id 다음에 열을 포함하는 값입니다. 이 값을 선택할 수 있습니다 attribute_value_1 테이블의 경우에는 제품의 유형은'1'또는 attribute_value_2 테이블의 경우에는 제품이 형식의'Type2'.

테이블의 제품

product_id 유형
1 type1
2 type2

테이블 attribute_value_1

id product_id
1 1 XXXXX

테이블 attribute_value_2

id product_id
1 2 ZZZZZ

그래서 다음의 예에서,그 결과의 질문은 아래와 같아야 한다:

결과

product_id
1 XXXXX
2 ZZZZZ

당신은 어떻게 진행할 수 있습니다?

case postgresql select sql
2021-11-15 15:24:30
1

최고의 응답

1

당신이 사용할 수 있는 두 가지 왼쪽으로 결합해 각각의 특성 테이블을 사용하여 다음 coalesce()함수 값을 가져서 사람들은 테이블 thatmatched:

select P.product_id , coalesce(att1.value, att2.value) value
from product p 
left join attribute_value_1 att1
   on p.product_id = att1.product_id and p.type = 'type1'
left join attribute_value_1 att2
   on p.product_id = att2.product_id and p.type = 'type2'
2021-11-15 15:40:21

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................