Maison  >  Questions et réponses  >  le corps du texte

Comment renvoyer plusieurs lignes de données lorsqu'une seule variable unique est disponible pour la clause Where ?

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粉094351878P粉094351878402 Il y a quelques jours477

répondre à tous(1)je répondrai

  • P粉378890106

    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

    répondre
    0
  • Annulerrépondre