2016-04-05 7 views
0

Kod yazıcısında sorgu yazmak için $this->db->query veya $someDB->query gibi bir şey yazmanız gerekir. Ama ya iki farklı veritabanından tablolara katılmak istersem?İki veritabanından tabloları birleştirerek codeigniter

SELECT * FROM db1.table1 JOIN db2.table2 

Ama CodeIgniter'ı kullanarak bunu yapmanın bir yolu yoktur:

ben mysqli_connect kullanarak ve böyle bir şey yazma, saf php üzerinden yapabilirsiniz biliyoruz? Bu basit ile öğrenci ve öğretmen masasının katılmak

function join_table() 
{ 
    $this->db->select(//column name, //column name, //column name); 
    $this->db->from(//table1 name); 
    $this->db->join(//table2 name, //table1 name.//column name = //table2 name.//column name'); 
    $this->db->where(//condition); 
    return $this->db->get()->result(); 
} 
+0

http://www.bsourcecode.com/codeigniter/codeigniter-join-query/ –

+0

Ben gerekmez döndü zaten veritabanlarına katılmak. Bazı yararlı örnekler için herkese teşekkürler. Yine de, nasıl yapılacağını öğrenmek ilginç olurdu, bu yüzden şimdilik bu konuyu silmem. –

cevap

0

Sen ... Ben şu anda üzerinde çalışıyorum bir projede kullanıyorum işlevini kullanmayı deneyin aşağıdaki kodu bakınız edebilirsiniz ... aynı sütun adı, bunu alacaksınız. Ayrıca, tek satırın try_dizini(); result_array() yerine;

+0

Hızlı cevap için teşekkürler Bryan. –

+0

Çok kullanışlıdır, ancak tek bir veritabanında birleştirmenin kullanılması örnekleri vardır. Aptallığımı bağışla, ama hala iki farklı veritabanından tablolara nasıl katılacağımı anlamıyorum. –

+0

Bu örnekte $ - db - $ db1 ve $ db2'yi değiştirmenin doğru bir şey olacağını düşünmeyin –

0

+0

Teşekkür ederim, bu harika ve çok iyi açıklanmıştı, ama yine de iki farklı veritabanına katılmam gerekiyor. Bir veritabanında iki tablo değil. –

0

Kullanım sorgu CodeIgniter yöntemi ve herhangi bir karmaşık sql sorgusu yalak geçmesine:

$query = $this->db->query("SELECT * FROM dbname1.table t1 JOIN db2.table t2 ON t2.column = t1.column"); 

foreach ($query->result() as $row) 
{ 
    print_r($row); 
} 
+0

Sanırım bu $> db' sadece db1'i bağlar. Eğer db2'yi "$ this-> load-> veritabanı" ("db2", true) ile bağlamaya çalışırsam; "döndürür: pg_query(): Sorgu başarısız oldu: HATA: ilişki 'db2.table2' mevcut değil" –

+0

I ortalama, dersin db bağlantısında değil, sorguda hata döndürür –