Wie kann ich mehrere Datenzeilen zurückgeben, wenn für die Where-Klausel nur eine eindeutige Variable verfügbar ist?
P粉094351878
P粉094351878 2023-09-13 17:31:35
0
1
524

Ich habe derzeit eine sehr einfache MySQL-Abfrage, die so aussieht:

SET @recordID = 60749;
SELECT netID, ID, recordID, team
FROM NetLog
WHERE recordID = @recordID;

Die Variable „recordID“ ist für jede Zeile eindeutig und die einzige verfügbare Variable, um die gewünschte Zeile zu erhalten.

Aber jetzt muss ich auch alle anderen Zeilen zurückgeben, die denselben „Team“-Wert wie die ursprüngliche Zeile haben. Ich habe mehrere Varianten ausprobiert, aber es wird immer „#1242 – Unterabfrage hat mehr als eine Zeile zurückgegeben“ zurückgegeben.

SET @recordID = 60749;
SELECT a.netID, a.ID, a.recordID, a.team,
    (SELECT b.recordID FROM NetLog b WHERE b.team = a.team AND b.recordID <> a.recordID) as rID
FROM NetLog a
WHERE a.recordID = @recordID;

Ich möchte dies nach Möglichkeit in einer Abfrage tun.

Kann mir jemand den richtigen Weg weisen?

P粉094351878
P粉094351878

Antworte allen(1)
P粉378890106

使用UNION来组合查询。

WITH mainRow AS (
    SELECT netID, ID, recordID, team
    FROM NetLog
    WHERE recordID = @recordID
)
SELECT * FROM mainRow
UNION
SELECT b.netID, b.ID, b.recordID, b.team
FROM NetLog AS b
JOIN mainRow AS a ON b.team = a.team AND b.recordID <> a.recordID
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage