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 MySQL Discussion :

SELECT "tout sauf champs xx, yy..."


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 9
    Points : 3
    Points
    3
    Par défaut SELECT "tout sauf champs xx, yy..."
    Bonjour à tous,

    Est-il possible de faire un SELECT * en excluant certains champs de la liste ?

    Je voudrais copier une partie des données d'une table vers une table identique. Ces deux tables ont toutes les deux la même clé primaire auto_increment, donc j'obtiens une erreur 1062 - Duplicata du champ '1' pour la clef 1.

    Si je pouvais faire quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO tbl1 SELECT * "sauf le champ ID" FROM tbl2 WHERE unFlag='1'
    ce serait merveilleux :-)

  2. #2
    Membre actif
    Inscrit en
    Septembre 2005
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 185
    Points : 220
    Points
    220
    Par défaut
    Slt essaye quelque chose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from B where cle NOT IN (select cle from A)
    t'as aussi hormis tout ceci tu peux bidouiller avec les jointures

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par polace
    Slt essaye quelque chose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from B where cle NOT IN (select cle from A)
    t'as aussi [code]
    Il me semble que la première partie de la requête va bien récupérer toutes les colonnes, y cmpris "cle", mais en faisant un filtre sur la valeur de ce champ.

    Mais de toute façon je ne pense pas que ça puisse marcher comme ça car a priori NOT IN doit être suivie d'une liste de valeurs et pas du résultat d'une requête (qui dans ce cas va être multi colonnes).

    Je n'ai pas trouvé de réponse formelle mais il me semble comprendre d'après ce que j'ai lu ailleurs que ce que je veux n'est pas possible, voir même contraire à la norme SQL.

    Est-ce que quelqu'un peut me le confirmer ?

  4. #4
    Membre actif
    Inscrit en
    Septembre 2005
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 185
    Points : 220
    Points
    220
    Par défaut
    Si je puis me permettre .Suis pas d'accord avec toi.si tu fais un tour sur les sous requettes tu veras que cette syntaxe est correcte.en plus il ya kelke jours le même problème a été posé.cette requette marche bien et elle est une des solution à ton problème

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2006
    Messages : 124
    Points : 159
    Points
    159
    Par défaut
    C'est pas plus simple d'énumérer tes champs? En tous cas c'est ce qui sera le plus performant par rapport à des sous-requêtes pour faire le tri.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT champ1, champ2, champ3 FROM table WHERE...
    Cela dit personnellement j'ajouterais un champ à ta table dupliquée destiné à recevoir l'id.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    C'est pas plus simple d'énumérer tes champs? En tous cas c'est ce qui sera le plus performant par rapport à des sous-requêtes pour faire le tri.
     
    Code :
     
    SELECT champ1, champ2, champ3 FROM TABLE WHERE...
    Bonjour,
    Personellement, j'ai une table avec + de 40 champs dedans. Je veux tous les séléctionner sauf un. Si je peux eviter de «m'amuser» a recopier mes 39 champs, c'est mieux.

    Ceci dit, la solution donnée plus haut ne fonctionne pas chez moi. J'obtient aucun resultat (la requette est executée sans probleme).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM B WHERE cle NOT IN (SELECT cle FROM A)
    En fait, lorsque l'on décortique la requette, on lui demande de nous selectionner tout les enregistrement sauf ceux ou la colonne «clé» est présente.
    Et comme il y a une clé pour chaque enregistrement, il ne nous retourne aucun résultat.

    Avez vous une solution pour séléctionner tout les champs sauf un ?

    Merci,

    HaaaWaaaX.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Janvier 2005
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 36
    Points : 38
    Points
    38
    Par défaut
    salut HaaaWaaaX

    J'ai exactement le meme type de probleme.
    Es ce que tu as eu une reponse a ton probleme ou trouvé une reponse?

    Par avance merci
    Jarod

  8. #8
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    et bien, on nomme tous les champs que l'on souhaite afficher !

    probleme deja évoqué : http://www.developpez.net/forums/sho...d.php?t=476335

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. afficher des quotes dans un champ de formulaire
    Par benkunz dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 07/10/2007, 15h45
  2. Select et insert avec des caracteres speciaux (quote ')
    Par Paco75 dans le forum Requêtes
    Réponses: 2
    Dernier message: 25/10/2006, 15h59
  3. Requete SELECT : prendre toutes les valeurs pour 1 champ
    Par fab22montpellier dans le forum Requêtes
    Réponses: 1
    Dernier message: 02/09/2005, 10h12
  4. Placer des quote dans un champs
    Par PrinceMaster77 dans le forum ASP
    Réponses: 2
    Dernier message: 21/04/2005, 11h36

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