Ich bin ein seriöser SQL-Noob, so dass jede Hilfe geschätzt wird. Ich bin auch eine harte Zeit, zu erklären, was ich versuche ich das Layout zu tun, so würde, was ich habe, so weit:SQL aus der Spalte auswählen, in der die Spalte der Tabellenvariablen entspricht?
DECLARE @UserIDInt table (ID int);
INSERT into @UserIDInt
SELECT UserId
FROM [LcsCDR].[dbo].[Users]
WHERE [LcsCDR].[dbo].[Users].[UserUri] LIKE '%example';
SELECT *
FROM [LcsCDR].[dbo].[SessionDetails]
WHERE [LcsCDR].[dbo].[SessionDetails].[User1Id] = @UserIDInt;
"DECLARE @UserIDInt table (ID int);"
Dies schafft meinen Variable mit einer Spalte namens „ID“
INSERT into @UserIDInt
SELECT UserId
FROM [LcsCDR].[dbo].[Users]
WHERE [LcsCDR].[dbo].[Users].[UserUri] LIKE '%example';
Dies fügt numerische Werte in die ID-Spalte basierend auf, ob die WHERE-Anweisung
SELECT *
FROM [LcsCDR].[dbo].[SessionDetails]
WHERE [LcsCDR].[dbo].[SessionDetails].[User1Id] = @UserIDInt;
abgestimmt Dies ist, wo ich bin verloren. Ich versuche, alle Zeilen von [LcsCDR].[dbo].[SessionDetails]
zurückzugeben, wenn die Spalte [LcsCDR].[dbo].[SessionDetails].[User1Id]
alles in meiner Variablen übereinstimmt. Das Problem (denke ich) besteht darin, dass SQL nicht in die Spalte der Variablen schauen kann, um mehrere Werte zu finden. Grundsätzlich enthält die ID-Spalte in meiner Variablen @UserIDInt eine Menge numerischer Werte.
Wie führe ich die letzte SELECT-Anweisung aus und lasse SQL alle Ergebnisse zurückgeben, wenn [LcsCDR].[dbo].[SessionDetails].[User1Id]
mit irgendetwas in meiner Spalte übereinstimmt?
Ich bin mit SQL Server 2014
Entschuldigt, wenn ich es schlecht erklärt. Nicht sicher, wie sonst die Frage zu stellen :)
Hinweis: 'Exists' – Sami
Sie haben eine Antwort, aber ich werde einen anderen Kommentar hinzufügen. Erstellen Sie KEINE temporäre Tabelle oder Tabellenvariable. Verwenden Sie einfach die gleiche Strategie wie @SqlZim, aber fragen Sie die reelle Quellentabelle direkt ab. Es gibt im Allgemeinen keinen Vorteil, eine Ergebnismenge in eine temporäre Tabelle zu speichern, wenn sie nur dazu dient, die Ergebnismenge der folgenden Abfrage zu filtern. Folgen Sie nicht blind den Designmustern. – SMor