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
435

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
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!