2016-07-20 13 views
2

Ich benutze Code unten, um Daten aus der Datenbank zu erhalten.leere Zeilen zurückgeben, wenn nicht in einer anderen Tabelle gefunden

$this->db->select('users.id,users.username,users.user_status,users.monthlybasepoints,Badges_benefits.nick,Badges_benefits.statusmultiplier,users.intellipoints,payment_info.minpayout,users.earning') 
     ->where('status',3) 
     ->from('users') 
     ->join('Badges_benefits','Badges_benefits.id=users.user_status') 
     ->join('payment_info','payment_info.u_id=users.id') 
     ->limit($limit,$offset) 
     ->order_by($orderby,$order); 
     $que= $this->db->get(); 
     return $que->result_array(); 

es gibt mir die Ausgabe unten zurück.

sr name val metal code minpayout earn 
1 liz  0 zinc 120  $22  $0 
2 ahs226 70 Silver 105  $50  $2.1 

->join('payment_info','payment_info.u_id=users.id') 

, wie ich nur zwei Zeilen in der Tabelle Zahlungsinformationen, so dass es mir zwei Ausgänge nur gibt. während ich möchte, dass es alle Zeilen von den Tabellenbenutzern auflisten sollte und den Wert von minpayout als null ausgeben kann, wenn nichts in Tabelle Zahlungsinformation so that.

sr name val metal code minpayout earn 
1 liz  0 zinc 120  $22  $0 
2 ahs226 70 Silver 105  $50  $2.1 
3 sdasd 34 any  343  null  $34 
3 sdasd 34 any  343  null  $24 
+0

eine gute Referenz auf dem Tisch verbindet. siehe hier https://blog.codinghorror.com/a-visual-explanation-of-sql-joins/ –

Antwort

2

Verwendung LEFT JOIN statt INNER JOIN:

$this->db->select('users.id,users.username,users.user_status,users.monthlybasepoints,Badges_benefits.nick,Badges_benefits.statusmultiplier,users.intellipoints,payment_info.minpayout,users.earning') 
     ->where('status',3) 
     ->from('users') 
     ->join('Badges_benefits','Badges_benefits.id=users.user_status', 'left') 
     ->join('payment_info','payment_info.u_id=users.id', 'left') 
     ->limit($limit,$offset) 
     ->order_by($orderby,$order); 
     $que= $this->db->get(); 
     return $que->result_array(); 
+0

danke. Du hast meinen Tag gerettet. Aber das war wirklich zu albern, um nicht daran zu denken. –

Verwandte Themen