2017-01-19 7 views
0

Ich habe das folgende funktionierende Stück Code.Fügen Sie zusätzliche Informationen zur DB-Abfrage hinzu

DB::table('plates') 
     ->join('projects', 'plates.project_id', '=', 'projects.id') 
     ->join('equipment_status_codes', 'plates.equipment_status_code_id', '=', 'equipment_status_codes.id') 
     ->select('projects.name AS Project', 'equipment_status_codes.name AS StatusCode', DB::raw('count(plates.id) as no_of_plates')) 
     ->groupBy('plates.project_id', 'plates.equipment_status_code_id') 
     ->get(); 

Das funktioniert gut. Es gibt Folgendes zurück.

[ 
    { 
    "Project": "Mose Kuvalis", 
    "StatusCode": "Dr. Ava Mraz", 
    "no_of_plates": 5 
    } 
] 

Obwohl ich immer noch wie Platten 10 nach links, über die nicht haben kein Projekt (e) oder Statuscode (s), die an es (so wie im wesentlichen null-Wert). Kann ich das in derselben Abfrage haben (selbe json) ?? und etwas zurückgeben (muss nicht gleich sein)

[ 
    { 
    "Project": "Mose Kuvalis", 
    "StatusCode": "Dr. Ava Mraz", 
    "no_of_plates": 5 
    }, 
    { 
    "Project": NULL, 
    "StatusCode": NULL, 
    "no_of_plates": 10 // or some other number 
    }, 
] 

Vielen Dank für Ihre Zeit!

Basierend auf Vorschlag habe ich die Abfrage aktualisiert, aber immer noch die gleichen Ergebnisse zurück.

 return DB::table('plates') 
     ->join('projects', 'plates.project_id', '=', 'projects.id') 
     ->join('equipment_status_codes', 'plates.equipment_status_code_id', '=', 'equipment_status_codes.id') 
     ->select(DB::raw('IFNULL(projects.name, NULL) as Project'), DB::raw('IFNULL(equipment_status_codes.name, NULL) as StatusCode'), DB::raw('count(plates.id) as no_of_plates')) 
     ->groupBy('plates.project_id', 'plates.equipment_status_code_id') 
     ->get(); 

Antwort

0

Sie sollten DB::raw() innen wählen Sie versuchen und IFNULL für jedes Auswahlfeld verwenden.

IFNULL Beispiel ::

IFNULL(projects.name, NULL) AS Project 
+0

Vielleicht ist mir dieses Recht nicht bekommen kann. Ich habe den Beitrag aktualisiert, würdest du mal gucken. Vielen Dank – user3641381

Verwandte Themen