2012-08-06 15 views
5

ile bir birleştirme yapabilirim, böylece iki tablo var ve tablo 1'deki tüm satırları, koşulun koşullarına uyan tüm satırları almak ve sonra birleştirmeyi temel alarak tablo iki ile birleştirmek istiyorum koşullar.codeigniter içinde nerede bir yan tümcesi

table1: 

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

table2: 

col1 col3 
1  someval1 
2  someval2 
3  someval3 

şimdi Tablo 1 col1 = 2 tüm satırları kapmak ve burada table2.col1 = table1.col1 tablo2 satırların olan satır katılmak isteyen:

burada örnek tablolardır. bu mantıklı mı?

+0

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

cevap

13

Bir süre oldu Umut fakat this docs page göre, çözüm şöyle olabilir:

$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(); 

not Bu yanıt hiçbir şekilde Code Igniter ;-)

ile çalışmanın onaylandığı şeklinde yorumlanamaz. hükmü yerine tablo1 ait katılmak ve masa 2.
+0

ya ben emin wasnn't dışında da o düşünüyordum Bu, DB sürücünüzün sorgularını nasıl derlediği ile ilgili daha fazla şey vardır; ancak hemen hemen tüm durumlarda, ilk önce nerede uygulanacağı, böylece sorgunun yalnızca bir satırdaki birleşmeyi yalnızca burada yer alan makaleyle eşleşmesi gerekir. – user1549397

+0

tablo 1 uygulanacak nerede olursa –

+1

Başka bir deyişle, ilk önce tablo1'deki satırlar için nereye vekalet uygulayarak çalışmayı engelleyebileceğini ve * sonra * birleştirmeyi yaptığını fark edecektir. Bu, sorgu yürütme planını * belirten * olarak adlandırdığımız şeydir. Çoğu durumda, ON ve WHERE cümleleri benzer şekilde ele alınır; ve genellikle çok verimli bir şekilde yapılır. –

2

bu deneyin:

$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(); 

yardımcı olur :) Ben CI yazdı beri

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" 
İlgili konular