Tuesday 15 April 2014

codeigniter - mySQL join question -


निम्न पंक्ति एक त्रुटि संदेश दे रही है।

  $ query = 'SELECT * FROM उत्पादों के रूप में पी LEFT JOIN श्रेणियों के रूप में c.id = p.category_id पर उपयोग कर रहा है जहां c.name = "Galleri1" और p.status = "सक्रिय" '; $ Q = $ this- & gt; db- & gt; क्वेरी ($ क्वेरी);  

डेटा बेस संरचना श्रेणियां

  यदि कोई प्रविष्ट नहीं होता है तो `श्रेणियां '(` आईडी` इंट (11) नल एयूटीएक्र्रेमेंट, `नाम' varchar (255) नहीं नल,` शॉर्ट डीस्क 'varchar (255) नल (`आईडी`)) इंजन = माइसाम डिफॉल्ट चार्सेट = latin1 AUTO_INCREMENT (` आईडी`) नहीं है, = 15; ... ...  

PRODUCT

  यदि तालिका में मौजूद नहीं है तो 'टैब बनाएं' (`आईडी` इंट (11) नल एयूटीओएनसीआरमेंट,` नाम `Varchar (255) नाउल,` शॉर्ट डीस्क varchar (255) नहीं, नल, लांगडीससी पाठ नहीं है, 'थंबनेल' varchar (255) नल, `छवि 'varchar (255) नल,` वर्ग' varchar ( 255) डिफॉल्ट नल, `समूहिंग 'varchar (16) डिफॉल्ट नल,` स्टेटस` एनएएम (' सक्रिय ',' निष्क्रिय ') नहीं है, `श्रेणी_आईडी` एट (11) नहीं नल,` फीचर्स` एनएएम (' सच्चा ' 'गलत') शून्य, `मूल्य 'फ्लोट (4,2) नल, प्राथमिक कुंजी (` आईडी`)) इंजन = माइसाम डिफॉल्ट चार्ज = latin1 AUTO_INCREMENT = 20;  

त्रुटि संदेश

  आपके SQL सिंटैक्स में एक त्रुटि है; मैन्युअल जो अपने सिम्युलेटर के लिए सही सिंटैक्स के पास है, उस पर मैन्युअल जांचें जो कि c.id = p.category_id पर 'c.name =' Galleri1 "और p.status =" सक्रिय "'लाइन 1 पर चयन करें * उत्पादों से सी के रूप में पीओई छोड़ें श्रेणियों के रूप में उपयोग करें c.id = p.category_id पर c। नाम = "गैलेरी 1" और p.status = "सक्रिय"  

Q1। क्या कोई मेरी गलती को बता सकता है?

प्रश्न 2 क्या कोई मुझे यह बता सकता है कि यह कैसे Codeigniter के सक्रिय रिकॉर्ड वर्ग में लिख सकता है?

अग्रिम धन्यवाद।

सिंगल उद्धरणों का उपयोग करें, का उपयोग कर से छुटकारा पाएं और जॉइन करें इनर:

  SELECT * से उत्पादों के रूप में पी जोन श्रेणियां एएस सी सीआईडी ​​= पी सी श्रेणी_आईडी जहां सी। नाम = 'गैलेरी 1' और पी.स्टेट = 'सक्रिय'  
  • दोहरे उद्धरण चिह्नों को आरक्षित चिह्नित करने के लिए उपयोग किया जाता है जो शब्द आप तालिका और स्तंभ नाम के रूप में उपयोग करते हैं स्ट्रिंग लीटरल को एकल उद्धरणों में संलग्न किया जाना चाहिए।

  • उपयोग में शामिल हों (col1) का अर्थ है कि आपके पास col1 नामक एक क्षेत्र है दोनों तालिकाओं में और उस पर शामिल होना चाहते हैं यदि आप ऐसा नहीं करते हैं, तो आपको का उपयोग करना चाहिए

  • इस स्थिति को c.name = 'galleri1' में रखना चाहिए WHERE खंड LEFT JOIN को एक INNER JOIN के रूप में ठीक उसी रिकॉर्ड को वापस करने के लिए बनाता है उत्तरार्द्ध अधिक कुशल है (क्योंकि ऑप्टिमाइज़र उस तालिका का चयन कर सकता है जिसमें शामिल होने के लिए अग्रणी हो)।


No comments:

Post a Comment