Comment sélectionner, faire correspondre et renvoyer des valeurs dans une requête MySQL ?
P粉986028039
P粉986028039 2024-04-02 17:18:57
0
1
493

J'ai deux tables, une table de transfert et une table club.

Voici le transfert de table :

id Nom Nom de famille Du club Aller au club Prix par numéro arrière Numéro de retour
0 Exemple 1 Exemple 2 EX3 EX4 Exemple 5 Exemple 6 Exemple 7

C'est le club de table :

id Abréviation Nom complet
0 EX3 Exemple 3
1 EX4 Exemple 4

Je veux prendre une ligne de la table de transfert, obtenir le fromclub, le faire correspondre à l'abréviation dans Clubs, obtenir le nom complet de la ligne et l'ajouter à la réponse. Je veux faire la même chose avec la colonne toclub. Ensuite, je veux le répéter pour toutes les autres lignes du transfert de table.

Pour faire simple, voici mon résultat attendu :

id Nom Nom de famille Du club Aller au club Prix par numéro arrière Numéro de retour Du nom complet du club nom complet du club
0 Exemple 1 Exemple 2 EX3 EX4 Exemple 5 Exemple 6 Exemple 7 Exemple 3 Exemple 4

Je n'arrive pas à trouver un moyen de créer une requête qui fasse cela sans obtenir environ 512 lignes de résultats, même si je n'ai actuellement que 8 lignes de résultats.

SELECT *
FROM transfers,
(SELECT clubs.fullname FROM transfers, clubs WHERE clubs.abbr = transfers.fromclub) AS fromclubfullname,
(SELECT clubs.fullname FROM transfers, clubs WHERE clubs.abbr = transfers.toclub) AS toclubfullname

Il renvoie 512 lignes et deux colonnes (appelées fullname) au lieu d'une colonne de clubfullname et toclubfullname.

P粉986028039
P粉986028039

répondre à tous(1)
P粉827121558

Vous pouvez le faire via 左连接 -

SELECT 
     transfers.*,
     c1.fullname as fromclubfullname,
     c2.fullname as toclubfullname FROM `transfers`
LEFT JOIN clubs c1 ON (c1.abbr = transfers.fromclub)
LEFT JOIN clubs c2 ON (c2.abbr = transfers.toclub)
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal