Kombinieren Sie zwei Tabellen in Select (SQL Server 2008)

7

Ich weiß, das ist wahrscheinlich sehr einfach, aber ich muss geschlafen haben, als sie das in der Schule unterrichteten:)

Wenn ich zwei Tabellen habe, so zum Beispiel:

Tabelle 1 (Produkte)

%Vor%

Tabelle 2 (Agent)

%Vor%

Wie erhalte ich eine Ergebnismenge von Produkten, die den Namen und die E-Mail-Adresse des Agenten enthalten, also products.agentid = agent.userid

Danke für Ihre schnellen Antworten, aber ich habe WHERE vergessen. Wie verbinde ich zum Beispiel SELECT WHERE price < 100

    
Jesper 16.02.2012, 03:07
quelle

5 Antworten

18

Bearbeitet, um Preisfilter zu unterstützen

Sie können die Klausel INNER JOIN verwenden, um diese Tabellen zu verknüpfen. Es ist so gemacht:

%Vor%

Eine andere Möglichkeit ist eine WHERE -Klausel:

%Vor%

Beachten Sie, dass Sie im zweiten Fall ein natürliches Produkt aller Zeilen aus beiden Tabellen erstellen und anschließend das Ergebnis filtern. Im ersten Fall filtern Sie das Ergebnis direkt, während Sie dem gleichen Schritt beitreten. Das DBMS wird Ihre Absichten verstehen (unabhängig davon, wie Sie dies lösen) und es auf die schnellste Art und Weise handhaben.

    
Mosty Mostacho 16.02.2012, 03:17
quelle
6

Dies ist eine sehr rudimentäre INNER JOIN :

%Vor%

Ich empfehle, die grundlegende JOIN -Syntax und -Konzepte zu überprüfen. Hier ist ein Link zu Microsofts Dokumentation , obwohl das, was Sie oben haben, ziemlich universell ist wie Standard-SQL.

Beachten Sie, dass INNER JOIN hier davon ausgeht, dass für jedes Produkt eine agentid zugeordnet ist, die nicht NULL ist. Wenn NULL agentid in products vorhanden ist, verwenden Sie stattdessen LEFT OUTER JOIN , um auch die Produkte ohne Agent zurückzugeben.

    
Michael Berkowski 16.02.2012 03:09
quelle
1
%Vor%     
Thit Lwin Oo 16.02.2012 03:10
quelle
1

Das ist mein Join für etwas größere Tabellen in Prod.Hope hilft es.

%Vor%     
Vikram Krish 22.07.2015 05:03
quelle
0
%Vor%     
John Dewey 16.02.2012 03:10
quelle

Tags und Links