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
451

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

UtilisezUNIONpour 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
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!