Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1731 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Alléger une requête SQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Alléger une requête SQL

n°1807365
Sp0k3r
Posté le 02-11-2008 à 02:22:38  profilanswer
 

Bonjour a tous,
 
Je vous explique mon soucis.
 
 
j'ai une table "joueur" avec: "idJoueur", "nomJoueur", "prenomJoueur", "idTeam"
 
Une table "team" avec: "idTeam", "nomTeam".
 
J'aimerais que quand je fasse un SELECT de la table joueur, au lieu de récuperer l'idTEAM (4eme donnee), recupere directement le nom qui est dans ma table team (a partir de son iD).
 
Je voudrais enfait lier ces deux tables, aujourd'hui je fais ceci: "SELECT * FROM joueur, team WHERE joueur.idTeam = team.idTeam"  
 
Ca marche mais je pense qu'il y'a une meilleur facon de faire, notement avec le logiciel MySQL Workbench?
 
Merci de vos réponses :)


Message édité par Elmoricq le 02-11-2008 à 10:13:32
mood
Publicité
Posté le 02-11-2008 à 02:22:38  profilanswer
 

n°1807401
moi23372
Posté le 02-11-2008 à 11:46:12  profilanswer
 

c'est la manière standard de faire les jointures.  
 
Certains SGBD (Oracle, SQL SERVER, etc.) permette encore de faire les jointures différemment.  
 
SELECT *
FROM joueur INNER JOIN team ON joueur.idTeam = team.idTeam
 
mais honnêtement, je ne sais pas si ça marche avec mySql.


---------------
quand un homme raisonne mal c'est qu'il n'a pas les données pour raisonner mieux (diderot)
n°1807421
Sp0k3r
Posté le 02-11-2008 à 13:25:47  profilanswer
 

En fait ce que j'aimerais aussi c'est que par exemple si je supprime un joueur, la team corresondante est automatiquement supprimé. J'aimerais relié ces deux table pour n'en faire qu'une en fait.

n°1807425
flo850
moi je
Posté le 02-11-2008 à 13:42:51  profilanswer
 

tu declares joueur.idTeam  en clé étrangère et tu regarde du cote de ON DELETE CASCADE

n°1807714
tet2neu
emmerdeur
Posté le 03-11-2008 à 14:48:26  profilanswer
 

y a qu'un joueur par team :??:

n°1807891
Sp0k3r
Posté le 03-11-2008 à 20:46:50  profilanswer
 

C'est qu'un exemple :)

n°1808064
moi23372
Posté le 04-11-2008 à 11:43:05  profilanswer
 

ce qu'il a fait ne permet que ce qu'un jour ne puisse être dans une équipe, pas une équipe par joueur.


---------------
quand un homme raisonne mal c'est qu'il n'a pas les données pour raisonner mieux (diderot)
n°1808066
tet2neu
emmerdeur
Posté le 04-11-2008 à 11:49:54  profilanswer
 

et en français ?

n°1808074
flo850
moi je
Posté le 04-11-2008 à 12:04:24  profilanswer
 

non, c'est l'inverse
un joueur ne peut appartenir qu'a une équipe ( ce qui ne me choque pas )

n°1808169
MEI
|DarthPingoo(tm)|
Posté le 04-11-2008 à 15:33:10  profilanswer
 

moi23372 a écrit :

c'est la manière standard de faire les jointures.  
 
Certains SGBD (Oracle, SQL SERVER, etc.) permette encore de faire les jointures différemment.  
 
SELECT *
FROM joueur INNER JOIN team ON joueur.idTeam = team.idTeam
 
mais honnêtement, je ne sais pas si ça marche avec mySql.


Le standard SQL c'est ta requete. L'autre c'est une façons implicite mais surtout adapté a Oracle grace au (+).


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
mood
Publicité
Posté le 04-11-2008 à 15:33:10  profilanswer
 

n°1808176
moi23372
Posté le 04-11-2008 à 15:54:36  profilanswer
 

MEI a écrit :


Le standard SQL c'est ta requete. L'autre c'est une façons implicite mais surtout adapté a Oracle grace au (+).


 
Je ne suis pas d'accord avec toi. Si tu vas voir la norme SQL 2, les jointures se font dans la WhereClause et non avec un INNER JOIN.


---------------
quand un homme raisonne mal c'est qu'il n'a pas les données pour raisonner mieux (diderot)
n°1808180
MEI
|DarthPingoo(tm)|
Posté le 04-11-2008 à 15:57:54  profilanswer
 

Ah, et donc tu fait comment une jointure gauche ?
 
Parce que a part dans Oracle t'es obligé de faire un left outer join.


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°1808707
MagicBuzz
Posté le 05-11-2008 à 15:48:24  profilanswer
 

moi23372 a écrit :

 

Je ne suis pas d'accord avec toi. Si tu vas voir la norme SQL 2, les jointures se font dans la WhereClause et non avec un INNER JOIN.


Ben et le SQL 92 alors ? :o
Ca date de quand le SQL 2 ? :o

 

Pis surtout, t'as l'air malin avec la syntaxe Oracle pour faire un FULL OUTER JOIN...
Et accessoirement, jusqu'à Oracle 8i, Oracle ne supportait pas la syntaxe verbeuse du SQL92. Depuis, il supporte sans problème le INNER JOIN, etc. C'est bien la preuve que l'évolution s'est faite dans ce sens et pas l'inverse ;)


Message édité par MagicBuzz le 05-11-2008 à 15:50:41

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Alléger une requête SQL

 

Sujets relatifs
requete mysql categorie et sous cat affichage des produitsrequête mysql : insert into where exists ?
[SQL] Aide à la réalisation d'une simple requête updateProbleme de requête SQL avec Windev trier par date
[SQL / Excel] 100 grosses requêtes à faire et VBA ne veut pas[Résolu]Faire évoluer une requête SQL
pd de mise en page d'une requete avec presence d'un lien 
Plus de sujets relatifs à : Alléger une requête SQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR