Comment renvoyer plusieurs lignes de données lorsqu'une seule variable unique est disponible pour la clause Where ?
P粉094351878
P粉094351878 2023-09-13 17:31:35
0
1
522

J'ai actuellement une requête MySQL très simple qui ressemble à ceci :

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

La variable recordID est unique pour chaque ligne et est la seule variable disponible pour obtenir la ligne souhaitée.

Mais maintenant, je dois également renvoyer toutes les autres lignes qui ont la même valeur « équipe » que la ligne d'origine. J'ai essayé plusieurs variantes mais cela renvoie toujours "#1242 - La sous-requête a renvoyé plus d'une ligne".

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;

J'aimerais faire cela en une seule requête si possible.

Quelqu’un peut-il m’indiquer la bonne direction ?

P粉094351878
P粉094351878

répondre à tous(1)
P粉378890106

Utilisez UNION pour combiner des requêtes.

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
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal