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
Bearbeitet, um Preisfilter zu unterstützen
Sie können die Klausel INNER JOIN
verwenden, um diese Tabellen zu verknüpfen. Es ist so gemacht:
Eine andere Möglichkeit ist eine WHERE
-Klausel:
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.
Dies ist eine sehr rudimentäre INNER JOIN
:
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.
Das ist mein Join für etwas größere Tabellen in Prod.Hope hilft es.
%Vor%Tags und Links sql sql-server select