Maison > Questions et réponses > le corps du texte
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粉3788901062023-09-14 11:42:17
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