2016-07-06 4 views
0

Ich habe 3 Tabellen com_co, sim, clistSQL 3 Table-Join mit IS NOT NULL

$list = "SELECT com_co.*, sim.*, clist.* 
     FROM com_co 
      INNER JOIN sim 
       ON sim.id = com_co.component_id 
      INNER JOIN clist 
       ON com_co.complex_id = clist.id AND IS NOT NULL 
     WHERE comp_c_code = '$rowId'"; 

Die Abfrage läuft, wenn ich die zweite INNER JOIN entfernen, aber dann kann ich keine Daten von clist bekommen. Die Spalte complex_id in Tabelle com_co kann null sein. Wenn es not null ist und einen Wert hat (ein id von clist) Ich möchte in der Lage sein, Daten von clist mit diesem ID zu erhalten.

Wenn ich diese Abfrage ausführen, erhalte ich keine zurückgegebenen Daten.

+2

'com_co.complex_id = clist.id und ist nicht NULL' Ausdruck keine gültige SQL ist. –

+0

Ich denke, das SELECT com_co funktioniert. *, Sim. *, Clist. * VON com_co INNER JOIN sim ON sim.id = com_co.component_id INNER JOIN clist ON com_co.complex_id = clist.id UND com_co. complex_id IST NICHT NULL WHERE comp_c_code = '$ rowId' – astroanu

+0

@astroanu es tut es leider nicht –

Antwort

1

versuchen diese

$list = "SELECT com_co.*, sim.*, clist.* 
    FROM com_co 
     INNER JOIN sim 
      ON sim.id = com_co.component_id 
     INNER JOIN clist 
      ON com_co.complex_id = clist.id 
    WHERE comp_c_code = '$rowId' AND com_co.complex_id IS NOT NULL"; 
+0

Ich benutzte LINKE JOIN auf CLIST und das hat den Trick gemacht –

Verwandte Themen