IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

INSERT et SELECT


Sujet :

Requêtes et SQL.

  1. #1
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Juillet 2007
    Messages : 41
    Par défaut INSERT et SELECT
    Bonjour,

    Ma base est sous Access 2000 et je cherche à insérer une nouvelle valeur dans la table "Matchs". Les données "ClubIDA" et "ClubIdB" devront être l'Id du Club extrait de la table "Clubs".

    J'ai utilisée cette requête mais j'ai toujours une erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO Matchs (ClubIdA,ClubIdB,MatchDateHeure)
    VALUES (
    (SELECT ClubId FROM Clubs WHERE ClubNom='Calais'),
    (SELECT ClubId FROM Clubs WHERE ClubNom='Alencon'),
    '11/06/2008 15:30'
    )
    Merci de votre aide.

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 070
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 070
    Par défaut
    Bonjour,

    La syntaxe exacte est décrite dans la FAQ, ici.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Juillet 2007
    Messages : 41
    Par défaut
    En lisant la syntaxe sur le document, je ne trouves pas d'erreurs.

    Je vais développer ma demande :
    J'ai une table Clubs définie par un ClubId (PK) et un ClubNom puis une autre table Matchs définie par un MatchId (PK), le 1er Club de la rencontre ClubIdA, le 2nd club de la rencontre ClubIdB, et la date et l'heure de la rencontre MatchDateHeure .

    Ce que je connais :
    les noms des deux clubs, la date et l'heure de la rencontre.

    Ce que je ne connais pas :
    les ClubId des deux clubs.

    Ce que je voudrais :
    Insérer une nouvelle valeur dans la table Matchs.

    Je ne vois pas mes erreurs...

    rappel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO Matchs (ClubIdA,ClubIdB,MatchDateHeure)
    VALUES (
    (SELECT ClubId FROM Clubs WHERE ClubNom='Calais'),
    (SELECT ClubId FROM Clubs WHERE ClubNom='Alencon'),
    '11/06/2008 15:30'
    )
    Je fais bien un INSERT INTO dans la table Matchs dans les champs (ClubIdA,ClubIdB,MatchDateHeure)
    des valeurs (
    Sous requêtes allant chercher dans la table Clubs le ClubId correspondant à Calais,
    Sous requêtes allant chercher dans la table Clubs le ClubId correspondant à Alencon,
    La date et l'heure
    )

    J'ai l'impression que les sous requêtes me renvoi des tables alors que la valeur est unique (pas de doublons) et que la commande INSERT ne peux utiliser une table ????

    Comprends plus.

  4. #4
    Membre Expert
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Par défaut
    Quelques remarques :
    • c'est super plus facile de donner des conseils quand on a l'erreur qui se produit car chez moi une requête du même type passe
    • Y a-t-il bien unicité des clubs pour un nom donné ?
    • Access 2000... on parle bien du produit de Microsoft ? Genre celui qui n'a totalement et absolument rien à voir avec MySQL ?

  5. #5
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Juillet 2007
    Messages : 41
    Par défaut
    • Pour ce qui est du message, je vais le retrouver et le mettre en PJ.
    • Pour les clubs effectivement il sont unique avec la PK ClubId
    • Pour Access, c'est le seul type de base locale que j'ai pu trouvé sans installé un serveur SQL. Si vous en connaissais d'autre n'hésitez pas...


    La base devra être dans le répertoire de l'application. Les personnes pour qui est destinées cette application ne pourront installer ce type de serveur. (Pas toujours le même PC, appli portable)

Discussions similaires

  1. Insert avec select sur table avec Trigger d'insertion
    Par bran_noz dans le forum Développement
    Réponses: 5
    Dernier message: 23/12/2005, 14h38
  2. Insert avec select
    Par Alexandre` dans le forum Langage SQL
    Réponses: 11
    Dernier message: 25/01/2005, 15h16
  3. Incrémenter champ : insert into . select max(.) + 1 from .
    Par ludo.guy dans le forum Langage SQL
    Réponses: 10
    Dernier message: 25/11/2004, 14h39
  4. Erreur lors d'une requete insert into.. select
    Par Mr N. dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 04/11/2004, 17h32
  5. [Insert et Select de la même table]
    Par lucimast dans le forum Langage SQL
    Réponses: 4
    Dernier message: 20/01/2004, 14h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo