Maison > Questions et réponses > le corps du texte
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粉8271215582024-04-03 15:15:27
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)