Bernd: LEFT JOIN auf zwei Spalten

Beitrag lesen

Hallo,

Ich mache sowas mit zwei Joins, und zur Unterscheidung nehme ich Table Aliase.

SELECT s.bereich_name as Sender, e.bereich_name as Empfaenger
FROM todo_grunddaten g
     LEFT JOIN todo_bereich s ON g.bereichSender = s.tb_code
     LEFT JOIN todo_bereich e ON g.bereichEmpfaenger = e.tb_code

verstehe ich ehrlich gesagt nicht so recht. Woher kommen z.B. diese "s.bereich_name as Sender, e.bereich_name as Empfaenger" Werte? Ich habe es mal in meine Funktion eingesetzt

function ToDoUebersicht($mysqli) {
    
        $stmt = $mysqli->prepare("SELECT id, code, kurzbeschreibung, art, erstellungsdatum, job, bereichSender, apSender, bereichEmpfaenger, apEmpfaenger, prio, status,
                                         fertigstellung_sender, fertigstellung_uhrzeit_sender, fertigstellung_empfaenger, fertigstellung_uhrzeit_empfaenger, beschreibung,
                                         ta_titel, tp_titel, ts_titel, tb_titelkurz, s.bereich_name as Sender, e.bereich_name as Empfaenger
                                  
                                  FROM todo_grunddaten
                                 
                                  LEFT JOIN todo_art ON todo_art.ta_code = todo_grunddaten.art
                                  LEFT JOIN todo_prio ON todo_prio.tp_code = todo_grunddaten.prio
                                  LEFT JOIN todo_status ON todo_status.ts_code = todo_grunddaten.status
                                  LEFT JOIN todo_bereich s ON g.bereichSender = s.tb_code
                                  LEFT JOIN todo_bereich e ON g.bereichEmpfaenger = e.tb_code");
       
        $stmt->execute();
        $stmt->bind_result($id, $code, $kurzbeschreibung, $art, $erstellungsdatum, $job, $bereichSender, $apSender, $bereichEmpfaenger, $apEmpfaenger, $prio, $status, 
                           $fertigstellung_sender, $fertigstellung_uhrzeit_sender, $fertigstellung_empfaenger, $fertigstellung_uhrzeit_empfaenger, $beschreibung, $ta_titel, $tp_titel, 
                           $ts_titel, $tb_titelkurz, $Sender, $Empfaenger);
        
        $stmt->store_result();
        
        if($stmt->num_rows() >  0) {     
            while ($stmt->fetch()){
                
                $ToDoUebersicht[] = array( 
                    
                    'id'                                => $id, 
                    'code'                              => $code,
                    'kurzbeschreibung'                  => $kurzbeschreibung,
                    'art'                               => $art,
                    'erstellungsdatum'                  => $erstellungsdatum, 
                    'job'                               => $job,
                    'bereichSender'                     => $bereichSender,
                    'apSender'                          => $apSender,
                    'bereichEmpfaenger'                 => $bereichEmpfaenger, 
                    'apEmpfaenger'                      => $apEmpfaenger,
                    'prio'                              => $prio,
                    'status'                            => $status,
                    'fertigstellung_sender'             => $fertigstellung_sender,
                    'fertigstellung_uhrzeit_sender'     => $fertigstellung_uhrzeit_sender, 
                    'fertigstellung_empfaenger'         => $fertigstellung_empfaenger,
                    'fertigstellung_uhrzeit_empfaenger' => $fertigstellung_uhrzeit_empfaenger,
                    'beschreibung'                      => $beschreibung,
                    'ta_titel'                          => $ta_titel,
                    'tp_titel'                          => $tp_titel,
                    'ts_titel'                          => $ts_titel,
                    'tb_titelkurz'                    => $tb_titelkurz,
                    'Sender'                          => $Sender,
                    'Empfaenger'                    => $Empfaenger
                );
            }
            return $ToDoUebersicht;
            }
    }

Allerdings erhalte ich dann eine Fehlermeldung

Fatal error: Call to a member function execute() on boolean in