2017-04-10 4 views
1

Ich brauche Hilfe.SQL-Join-Tabellen zeigen leeres Feld, wenn Datensatz nicht existiert

brauche ich zwei Doppelzimmer

Tabelle 1

Product_Name Content_Type Price 
Movie   Adult  10 
Movie   Kids  10 

Tabelle 2

Product_Name Content_Type Rating 
Movie   Adult  A 
Movie   Kids   B 
Movie   Romance  C 

ich die Tabellen verknüpfen müssen sich registrieren, so dass es wie diese

gewünschte Ausgabe sieht

Product_Name Content_Type Price Rating 
    Movie   Adult  10  A 
    Movie   Kids  10  B 
    Movie   Romance   C 

Stromausgang

Product_Name Content_Type Price Rating 
    Movie   Adult  10  A 
    Movie   Kids  10  B 
    Movie   Romance 10  C 

Aktuelle Abfrage

select * from table2 left join table1 on table2.Product_Name=table1.Product_Name 

In der Tat in der realen Tabelle gibt es viele Werte für Product_Name. Ich schrieb die Abfrage so mit dieser Logik im Hinterkopf,

Suchen Sie nach allen Zeilen in Tabelle2, finden Sie eine Übereinstimmung in Tabelle1 und verbinden Sie die Zeilen. Wenn in Tabelle 2 eine Zeile vorhanden ist, aber keine Zeile in Tabelle1, dann zeigen Sie nur den Wert von Tabelle2 an, während Null für die entsprechenden Felder in Tabelle1 angezeigt wird.

+2

hinzufügen und content_type in der Join-Klausel – etsa

Antwort

5

Sie erhalten den Datensatz mit dem Inhaltstyp Romance nicht, wenn Sie nur den Produktnamen verknüpfen. Sie müssen auch auf content_type beizutreten:

select * 
from table2 left join 
    table1 
    on table2.Product_Name=table1.Product_Name and 
     table2.content_type = table1.content_type 
+0

Hallo vielen Dank Ihr Vorschlag funktioniert prima. –

+0

Kein Problem, Mann. Wir haben alle irgendwo angefangen. – iPhantomGuy

Verwandte Themen