Postgresql एक स्तंभ का चयन करें या अन्य के तहत एक ही उपनाम के मूल्य के अनुसार एक तीसरे स्तंभ

0

सवाल

मैं एक डेटाबेस है जिसका स्कीमा में सरल किया जा सकता है इस तरह से: एक उत्पाद तालिका, और दो तालिकाओं युक्त मूल्यों को समृद्ध करने के लिए विवरण का एक उत्पाद है । मैं होगा की तरह बनाने के लिए एक का चयन करें क्वेरी मुझे अनुमति देने के लिए प्रदर्शित उत्पाद आईडी के द्वारा पीछा किया, एक स्तंभ युक्त एक मूल्य है । इस मूल्य में चुना जा सकता है attribute_value_1 तालिका यदि उत्पाद के प्रकार 'टाइप 1' या में attribute_value_2 तालिका यदि उत्पाद के प्रकार 'Type2'.

तालिका उत्पाद

product_id प्रकार
1 टाइप 1
2 type2

तालिका attribute_value_1

आईडी product_id मूल्य
1 1 XXXXX

तालिका attribute_value_2

आईडी 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ý
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में