 |
 |
Developpement Empirium
|
 |
 |
 |
 |
|
 |
 |
 |
 |
 |
Faëinkar commère galactique

Inscrit le: 25 Nov 2004 Messages: 784
 |
Posté le: Lun 06 Mai 2013, 19:09 Sujet du message: |
 |
|
Certaines ont des XX |
|
|
|
|
|
 |
 |
 |
 |
 |
Hollowman Fille (vu la piplette)
Inscrit le: 03 Mai 2004 Messages: 1160 Localisation: Quelque part entre deux points lumineux  |
Posté le: Mar 07 Mai 2013, 00:14 Sujet du message: |
 |
|
Faëinkar a écrit: | Certaines ont des XX |
Ce ne sont pas les plus fréquentes  |
|
|
|
|
|
 |
 |
 |
 |
 |
Azirma Oberon Maître Floodeur

Inscrit le: 02 Avr 2004 Messages: 2550
 |
Posté le: Mar 07 Mai 2013, 10:51 Sujet du message: |
 |
|
Non, ça me parrait bizarre que je sache un truc que Max ne saurait pas, mais je tente ma chance quand même :
1ere méthode : SELECT * FROM news WHERE id_auteur=(SELECT id_auteur FROM auteur WHERE nom='Dupont' AND prenom='marcel')
Je n'aime pas cette méthode parce que ça devient très vite le gros bordel.
2ème méthode : SELECT * FROM news AS n, auteur AS a WHERE n.id_auteur = a.id_auteur AND nom="DUPONT" AND prenom="Marcel"
Beaucoup plus classe je trouve. :p (et pratique à moyen terme)
J'ai trouvé les exemples ici : http://www.siteduzero.com/informatique/tutoriels/sql-selection-multi-tables
Si c'est bien ça que tu cherches max, je peux développer un exemple plus parlant. |
|
|
|
|
|
 |
 |
 |
 |
 |
Azirma Oberon Maître Floodeur

Inscrit le: 02 Avr 2004 Messages: 2550
 |
Posté le: Mar 07 Mai 2013, 11:12 Sujet du message: |
 |
|
Aller je me lance :
Table POSITION_VSX
Champ : ID_VSX
Champ : X
Champ : Y
Table ORDRES_VSX
Champ : ID_Ordre
Champ : ID_VSX
Champ : Type_Ordre
Champ : Info1 // Ici ce sera les X
Champ : Info2 // Ici ce sera les Y
Code: |
UPDATE POSITION_VSX
SET X = (SELECT ORDRES_VSX.Info1, ORDRES_VSX.ID_VSX, ORDRES_VSX.Type_Ordre FROM ORDRES_VSX WHERE ORDRES_VSX.ID_VSX = POSITION_VSX.ID_VSX AND ORDRES_VSX.Type_Ordre = "Deplacement" ),
Y = (SELECT ORDRES_VSX.Info2, ORDRES_VSX.ID_VSX, ORDRES_VSX.Type_Ordre FROM ORDRES_VSX WHERE ORDRES_VSX.ID_VSX = POSITION_VSX.ID_VSX AND ORDRES_VSX.Type_Ordre = "Deplacement" )
|
Je n'ai pas trouver comment appliquer ma méthode 2 à la fonction UPDATE mais cette méthode 1 fonctionne.
edit : 2 MAJ déjà ^^ |
|
|
|
|
|
 |
 |
 |
 |
 |
Max Créateur du Jeu

Inscrit le: 23 Jan 2003 Messages: 8277
 |
Posté le: Mar 07 Mai 2013, 11:42 Sujet du message: |
 |
|
Je ne savais pas que l'on pouvait mettre un SELECT dans une clause SET =.
Ceci dit, j'ai un autre souci : pour chaque déplacement, il faut générer le rapport !
Et du coup on revient à un traitement presque unitaire.
Mais sur Nova, les temps de traitement des déplacements ont été divisés par 10 hier, grâce à la nouvelle méthode.
Je pense donc que cela sera aussi le cas sur Prima, et donc qu'il n'y aura plus d'optimisation nécessaire.
Merci à vous en tout cas, je testerai ces syntaxes, ça peut toujours servir dans un autre cas. _________________ AUCUN HRP sur les forums RP merci
 |
|
|
|
|
|
 |
 |
 |
 |
 |
Faëinkar commère galactique

Inscrit le: 25 Nov 2004 Messages: 784
 |
Posté le: Mar 07 Mai 2013, 15:24 Sujet du message: |
 |
|
oui, tu peux ^_^
j'avais aussi la proposition d'Azirma, mais pour les perf, mieux vaut une seule sous-requête que deux
Et si tu mets un index sur le numéro de flotte, tu améliores encore les perfs.
Pour le rapport, dans ta table où tu as la position des flottes, tu peux mettre une colonne pour flaguer si la position a été modifiée ou pas. Comme ça, avec un simple select, tu génère ton rapport de déplacement. |
|
|
|
|
|
 |
 |
 |
 |
 |
|
 |
 |
 |
 |
|
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum
|
|
|
 |