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

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

c# - Textbox not clickable but editable -

Matlab transpose a table vector -