MYSQL INNER JOIN mit möglichen leeren Feldern

8

Ok, ich habe ein Problem mit dem Verbinden von 2 Tabellen (mit INNER JOIN). Die erste Tabelle enthält eine Kategorieliste (zB für Fotoalben oder Blog-Posts), während die zweite Tabelle "die Daten" enthält

Ich habe es so versucht:

%Vor%

Das gibt mir ein faires Ergebnis, indem ich meine Tische schön zusammenschließe, so wie ich es mit einer entscheidenden Ausnahme möchte.

Wenn die Tabelle "fotos" keine Zeile enthält, die "photos_gal_id" enthält (zum Beispiel "2"), gibt sie KEINE Kategorie (galeries_id, galeries_title) für diese Kategorie zurück, auch wenn sie in der galeries-Tabelle egzist .

Es ist logisch wegen:

%Vor%

Jetzt muss ich diesen Teil übernehmen, um mir sogar zu zeigen, das keine verwandte Zeile in der zweiten Tabelle hat

Das Ergebnis, das ich erreichen möchte, ist:

%Vor%

Ich hoffe, ich habe es gut genug erklärt :) Danke ..

    
uollaa 30.07.2013, 14:51
quelle

2 Antworten

20

Um die Zeilen von galeries ohne übereinstimmende ID in Fotos zu behalten, müssen Sie Fotos in Galerien mit LEFT JOIN anstelle von INNER JOIN :

verbinden %Vor%

Dies gibt Ihnen:

%Vor%

Und wenn Sie NULL durch eine leere Zeichenfolge ersetzen möchten, können Sie verwenden:

%Vor%     
Mark 30.07.2013, 15:00
quelle
1

Wäre es nicht einfach ein

? %Vor%

Weil Sie die Aufzeichnungen unabhängig davon wollen, ob sie gefüllt sind oder nicht?

    
Jacob Goulden 30.07.2013 15:02
quelle

Tags und Links