Biz basit bir veritabanı var. Kullanıcı tablo kullanıcıları tutar. Hesapları tablo her kullanıcı için birden fazla hesap tutar. Başlıklar tablo, her hesap için birden fazla konu tutar.
Yani, bir kullanıcı birden fazla hesap olurdu ve her hesap birden çok konu olurdu. Yani, id = 1 olan bir kullanıcı varsa, nasıl verimli bir şekilde kullanıcının tüm hesaplarını ve konuları almak için tüm 3 tabloları sorgulamak mı?
Şu anda birçok sql sorguları çalıştırmak foreach döngüleri kullanıyorum. Sadece ne istediğinizi almak için bir sql sorgusu çalıştırmak için bir yolu var mı?
İşte ben şu anda (CodeIgniter kodu olan) kullanıyorum kodu:
$data=array();
$accounts=$this->db->get_where('accounts',array('user_id'=>1));
foreach ($accounts->result() as $account) {
$tmp=array();
$topics=$this->db->get_where('topics',array('account_id'=>$account->id));
foreach ($topics->result() as $topic) {
$this->db->order_by($order_by);
$terms=$this->db->get_where('terms',array('topic_id'=>$topic->id));
array_push($tmp,array('topic'=>$topic, 'terms'=>$terms->result()));
}
array_push($data,array('account'=>$account, 'topics'=>$tmp));
}
return $data;