2012-08-06 9 views
5

के साथ जुड़ूं, इसलिए मेरे पास दो टेबल हैं, और मैं तालिका 1 से सभी पंक्तियां प्राप्त करना चाहता हूं जो क्लॉज स्थितियों को पूरा करते हैं, और फिर जुड़ने के आधार पर तालिका दो के साथ उनसे जुड़ें शर्तेँ।कोडिग्निटर में मैं कहां से क्लॉज

table1: 

col1 col2 col3 
1  a  val1 
2  b  val2 
3  c  val3 

table2: 

col1 col3 
1  someval1 
2  someval2 
3  someval3 

अब मैं तालिका 1 जहां col1 = 2 में सभी पंक्तियों को हड़पने, और table2 से जहां table2.col1 = table1.col1 पंक्तियों के साथ उन पंक्तियों को शामिल करना चाहते हैं:

यहाँ नमूना टेबल्स कर रहे हैं। क्या इसका कोई मतलब है?

+0

roytuts.com/codeigniter-join-example/ – user3470953

उत्तर

13

इसके बाद से मैं सीआई लिखा एक समय हो गया है, लेकिन प्रति this docs page के रूप में, अपने समाधान इस प्रकार दिखाई देंगे:

$this->db->select('*'); 
$this->db->from('table1'); 
$this->db->join('table2', 'table1.col1 = table2.col1'); 
$this->db->where('table1.col1', 2); 

$query = $this->db->get(); 

नोट यह उत्तर कोड इग्निटर के साथ काम करने के समर्थन के रूप में समझा जाने वाला कोई तरीका नहीं है ;-)

+0

फिर मैं इस बात का भी सोच रहा था, को छोड़कर मुझे यकीन है कि wasnn't जहां अगर खंड के बजाय तालिका 2. – user1549397

+0

table1 की शामिल होने और की तालिका 1 को लागू किया जाएगा इसके साथ और अधिक करना है कि आपका डीबी ड्राइवर इसके प्रश्नों को कैसे संकलित करता है; लेकिन लगभग सभी मामलों में, जहां खंड पहले लागू किया जाएगा, ताकि क्वेरी केवल एक पंक्ति पर शामिल हो जो कि खंड से मेल खाती है। –

+1

दूसरे शब्दों में, यह ध्यान देगा कि यह टेबल 1 में पंक्तियों के लिए कहां से क्लॉज लागू कर सकता है, और फिर * शामिल हो रहा है। यही वह है जिसे हम क्वेरी निष्पादन योजना * के निर्माण के रूप में संदर्भित करते हैं। ज्यादातर मामलों में, चालू और कहां खंडों को समान रूप से संभाला जाता है; और आमतौर पर यह एक बहुत ही कुशल तरीके से किया जाता है। –

2

इस प्रयास करें:

$this->db->select('*'); // Select field 
$this->db->from('table1'); // from Table1 
$this->db->join('table2','table1.col1 = table2.col1','INNER'); // Join table1 with table2 based on the foreign key 
$this->db->where('table1.col1',2); // Set Filter 
$res = $this->db->get(); 

आशा है कि यह मदद करता है :)

0
$this->db->select('book_id, book_name, author_name, category_name'); 
$this->db->from('books'); 
$this->db->join('category', 'category.category_id = books.category_id'); 
$this->db->where('category_name', 'Self Development'); 
$query = $this->db->get(); 

// Produces SQL: 
select book_id, book_name, author_name, category_name from books 
join category on category.category_id = books.category_id 
where category_name = "Self Development" 
संबंधित मुद्दे