sql - Selecting table of properties as columns -


मेरे पास दो टेबल हैं, चीजें और properties :

  टेबल चीजें बनाएं (आईडी श्रेय प्राथमिक कुंजी); सारणी गुण (thing_id INT, कुंजी पाठ, मूल्य पाठ) बनाएँ;   

मैं वस्तुएं से चयन करना चाहता हूं और कॉलम के रूप में properties से पंक्तियों में शामिल होना चाहता हूँ। उदाहरण के लिए, मान लें कि मेरे पास निम्न है:

  INFACT चीजें DEFAULT_VALUES; मान लीजिए आईडी 1 संपत्तियों (चीज_आईडी, कुंजी, मान) मूल्यों (1, 'ऊंचाई', '5'), (1, 'चौड़ाई', '6'), (1, 'लंबाई', '7 ');   

मैं ऊंचाई , चौड़ाई , और लंबाई के रूप में स्तंभों के रूप में किस प्रकार से चुन सकता / सकती हूं?

इसके अलावा, मैं विशेष रूप से ऊंचाई , width , और लंबाई का चयन नहीं करना चाहता,

सिर्फ तीन स्तंभों के लिए:

  SELECT t.thing_id, max (CASE जब p.key = 'height' तब p.value END) ऊंचाई के रूप में, अधिकतम (मामला जब p.key = 'width' THEN p.value END) के रूप में चौड़ाई, अधिकतम ( मामले में जब p.key = 'लंबाई' तब पी .value END) चीजों से लम्बाई के रूप में, पी। पर कुछ गुण जोड़ पी .thing_id = t.id WHERE t.id = 1 GROUP BY 1;   

या अतिरिक्त मॉड्यूल tablefunc से crosstab () का उपयोग करें जो विशेष रूप से तेज और विशेषताओं की लंबी सूचियों के लिए कम है:

  चयन करें * crosstab से ('SELECT t.thing_id, p.key, p.value से चीजें कम से कम जोड़ पी गुणों p.thing_id = t.id WHERE t.id = 1 आदेश 1 ', $ $ मूल्य (' ऊंचाई ':: पाठ), (' चौड़ाई '), (' लम्बाई ') $ $) - अधिक सीटी (चीज_आईड int, ऊंचाई int, चौड़ाई int, लंबाई int) जोड़ें; - अधिक जोड़ें   

प्रकारों से मिलान करना होगा। विस्तृत विवरणः

ए पूरी तरह से कॉलम की डायनेमिक सूची एकल क्वेरी में प्राप्त नहीं की जा सकती। मैंने कई बार कोशिश की है हो सकता है किया गया है:



Comments

Popular posts from this blog

Delphi: missing interface declarations for UI Automation methods -

php - how to change mysql_result($res, 0, "url"); to mysqli -

android - How to attach an image from an app to gmail -