Auteur Sujet: Requête Sql Complexe  (Lu 1003 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne yannbla

  • Connaisseur
  • ***
  • Messages: 278
Requête Sql Complexe
« le: 03 juin 2004 à 02:27:58 »
Bonjour,

Je souhaite faire une requête assez complexe en SQL :

J'ai une colonne 'place' de type INT et une autre colonne 'level' de type INT aussi

Je souhaite quand j'ajoute une ligne à la table que la variable 'place' prenne la valeur la plus élevée + 1 de tout les éléments ayant le même 'level'. Tout cela en une seule requête si possible.
Savez-vous comment faire cette requête ?

Hors ligne 2ae

  • Débutant
  • *
  • Messages: 70
    • http://www.ensieta.fr/2ae
Requête Sql Complexe
« Réponse #1 le: 03 juin 2004 à 10:18:06 »
Tu as essayé INSERT INTO tatable ('place') VALUES (1+(SELECT place FROM tatable WHERE level=$tonniveau ORDER BY place DESC LIMIT 0,1))
Ca parait un peu bete et je doute que ca marche mais tu peux toujours essayer  :huh:  

Hors ligne yannbla

  • Connaisseur
  • ***
  • Messages: 278
Requête Sql Complexe
« Réponse #2 le: 03 juin 2004 à 11:55:47 »
Ca ne fonctionne pas, il refuse le second SELECT

Hors ligne NaJ

  • Connaisseur
  • ***
  • Messages: 354
    • http://photo.pyrollo.com
Requête Sql Complexe
« Réponse #3 le: 04 juin 2004 à 10:30:49 »
Le mieux est alors de faire deux requêtes. Ce qui revient au même que de faire une sous-requête d'ailleurs.

Par contre, je ne sais pas ce qui est le mieux entre ces deux requêtes pour obtenir le nombre maximum :

SELECT place FROM tatable WHERE level=$tonniveau ORDER BY place DESC LIMIT 0,1
SELECT MAX(place) FROM tatable WHERE level=$tonniveau
(Je pencherais pour la seconde qui me semble plus appropriée)
www.traque-aux-plaques.com

Collection de photos de plaques et regards de chaussée

http://photo.pyrollo.com

Photos de balades

Hors ligne yannbla

  • Connaisseur
  • ***
  • Messages: 278
Requête Sql Complexe
« Réponse #4 le: 04 juin 2004 à 12:16:04 »
Merci NaJ,

Je faisais déjà en 2 requêtes mais avec un requête proche de ta 1ère solution. Je vais implémenter la seconde qui me parait également plus apropriée.