2017-04-21 7 views
0

Ich arbeite an einem Codeigniter-Projekt.MySQL-Abfrage zur Auswahl abhängiger Zeilen aus verknüpften Tabellen

Hier sind meine Tabellen

category 
cid cname 
5 general 
6 science 
7 math 

books 
bid bname 
12 first 
13 second 
14 third 
15 fourth 
16 fifth 
17 sixth 

dir 
id bid  cid 
1 12  5 
2 13  6 
3 14  7 
4 15  6 
5 16  5 
6 17  5 

Wie die Tabellen einfach hier sehen Verbinden kann aber ist das, was ich tun muss.

Erstellen Sie eine Funktion, die mir den Kategorienamen (cname) und die Anzahl der Bücher in dieser Kategorie gibt. Zum Beispiel sollte das Ergebnis wie seine hier

general 3 
science 2 
math 1 

mein WIP-Modell ist

function category_details(){ 
     $this->db->order_by('cname','asc'); 
     $query=$this->db->query('Select * from dir join category on category.cid=dir.cid join books on dir.bid=books.bid'); 
     return $query->result_array(); 
} 

Jede Hilfe wäre sehr willkommen.

+0

was wird jetzt ausgegeben ?? –

Antwort

0

Die Abfrage so sein sollte bekommen Ergebnis erwartet

Select category.cname,count(dir.cid) from dir join category on category.cid=dir.cid join books on dir.bid=books.bid group by category.cname 

Und Ihre Funktion wie diese

function category_details(){ 
     $this->db->order_by('cname','asc'); 
     $query=$this->db->query('Select category.cname,count(dir.cid) from dir join category on category.cid=dir.cid join books on dir.bid=books.bid group by category.cname'); 
     return $query->result_array(); 
} 

sollten Sie diesen Code COUNT/GROUP BY with active record? für die richtige CI-Abfrage beziehen.

+0

Vielen Dank, das hat gut funktioniert. – Rana

Verwandte Themen