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 :

pb de version mySql


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 23
    Points : 25
    Points
    25
    Par défaut pb de version mySql
    Salut,

    Je voudrait rechercher les personnes qui ne sont pas inscrite à un event. Bref j'ai fait une requete qui marche bien en localhost sur mon PC (version 4.1.9 de MySql) et qui donne une erreur sur le serveur (version 3.23.54 de MySQl). Voici le code de la requete :

    SELECT m.id_membre, m.nom, m.prenom FROM membre m WHERE m.id_membre NOT IN (SELECT c.id_membre FROM commande c, detail d where c.id_com = d.id_com and d.id_event='16')

    et voici l'erreur :

    You have an error in your SQL syntax near 'SELECT c.id_membre FROM commande c, detail d where c.id_com = d.id_c' at line 1

    Voici le schema de mes 3 tables
    CREATE TABLE `commande` (
    `id_com` int(10) NOT NULL auto_increment,
    `id_membre` int(20) NOT NULL default '0',
    `date_com` datetime NOT NULL default '0000-00-00 00:00:00',
    `total_com` float(11,2) NOT NULL default '0.00',
    `societe_com` varchar(50) NOT NULL default '',
    `nom_com` varchar(50) NOT NULL default '',
    `prenom_com` varchar(50) NOT NULL default '',
    `adresse_com` tinytext NOT NULL,
    `postal_com` varchar(5) NOT NULL default '',
    `ville_com` varchar(70) NOT NULL default '',
    `pays_com` varchar(30) NOT NULL default '',
    `tel_com` varchar(10) NOT NULL default '',
    `nom_invit_1` varchar(50) NOT NULL default '',
    `prenom_invit_1` varchar(50) NOT NULL default '',
    `societe_invit_1` varchar(50) NOT NULL default '',
    `nom_invit_2` varchar(50) NOT NULL default '',
    `prenom_invit_2` varchar(50) NOT NULL default '',
    `societe_invit_2` varchar(50) NOT NULL default '',
    `nom_invit_3` varchar(50) NOT NULL default '',
    `prenom_invit_3` varchar(50) NOT NULL default '',
    `societe_invit_3` varchar(50) NOT NULL default '',
    `total_paye` float(11,2) NOT NULL default '0.00',
    PRIMARY KEY (`id_com`),
    KEY `id_cli` (`id_membre`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 PACK_KEYS=0 AUTO_INCREMENT=160 ;

    -- --------------------------------------------------------

    CREATE TABLE `detail` (
    `id_det` int(20) NOT NULL auto_increment,
    `id_com` int(10) NOT NULL default '0',
    `id_event` int(5) NOT NULL default '0',
    `quantite` int(3) NOT NULL default '0',
    PRIMARY KEY (`id_det`),
    KEY `id_com` (`id_com`),
    KEY `id_pro` (`id_event`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=160 ;

    -- --------------------------------------------------------



    CREATE TABLE `membre` (
    `id_membre` int(15) NOT NULL auto_increment,
    `id` varchar(20) default NULL,
    `civil` varchar(4) NOT NULL default '',
    `nom` varchar(50) NOT NULL default '',
    `prenom` varchar(50) NOT NULL default '',
    `societe` varchar(50) NOT NULL default '',
    `adresse` varchar(50) NOT NULL default '',
    `postal` varchar(5) NOT NULL default '',
    `ville` varchar(70) NOT NULL default '',
    `pays` varchar(30) NOT NULL default '',
    `tel` varchar(15) NOT NULL default '0',
    `mail` tinytext NOT NULL,
    `login` varchar(20) NOT NULL default '',
    `passe` varchar(20) NOT NULL default '',
    `valide` int(1) default '0',
    `fax` varchar(15) NOT NULL default '',
    `gsm` varchar(15) NOT NULL default '',
    `adresse_priv` varchar(50) NOT NULL default '',
    `postal_priv` varchar(5) NOT NULL default '',
    `ville_priv` varchar(50) NOT NULL default '',
    `pays_priv` varchar(30) NOT NULL default '',
    `radiotypefct` varchar(15) NOT NULL default '',
    `datedebact` date NOT NULL default '0000-00-00',
    `fonctioncourt` varchar(50) NOT NULL default '',
    `NCBFA` varchar(20) NOT NULL default '',
    `titrecourt` varchar(30) NOT NULL default '',
    `fonctioncomp` varchar(50) NOT NULL default '',
    `titrecomp` varchar(30) NOT NULL default '',
    `fonctionautre` varchar(50) NOT NULL default '',
    `titreautre` varchar(30) NOT NULL default '',
    `datenaiss` date NOT NULL default '0000-00-00',
    `etatcivil` varchar(30) NOT NULL default '',
    `etudes` varchar(70) NOT NULL default '',
    `historique1` varchar(70) NOT NULL default '',
    `historique2` varchar(70) NOT NULL default '',
    `association1` varchar(70) NOT NULL default '',
    `association2` varchar(70) NOT NULL default '',
    `hobbies` varchar(70) NOT NULL default '',
    `motif1` varchar(70) NOT NULL default '',
    `motif2` varchar(70) NOT NULL default '',
    `parrain1` varchar(70) NOT NULL default '',
    `parrain2` varchar(70) NOT NULL default '',
    `dateinscr` date NOT NULL default '0000-00-00',
    `photo` tinytext NOT NULL,
    PRIMARY KEY (`id_membre`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=133 ;

    Avez vous une idée ?
    Merci

    Fred

  2. #2
    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 : 40
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 641
    Points
    4 641
    Par défaut
    les sous requetes ne sont pas possible en version 3.2
    voir la FAQ pour trouver le paliatif

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 23
    Points : 25
    Points
    25
    Par défaut
    OK merci j'ai vu qu'il faut faire un left join mais comment faire cela quand la sous requete est sur deux tables ?

    SELECT m.id_membre, m.nom, m.prenom FROM membre m WHERE m.id_membre NOT IN (SELECT c.id_membre FROM commande c, detail d where c.id_com = d.id_com and d.id_event='16')

    Est il possible de faire un left joint à plus de deux tables ?

    Merci

    Fred

Discussions similaires

  1. problème compatibilité de version MySQL
    Par hokidoki dans le forum ASP
    Réponses: 3
    Dernier message: 18/05/2007, 19h49
  2. Version MySql 4.1.20-max-log chez OVH
    Par bigjim21 dans le forum Outils
    Réponses: 3
    Dernier message: 14/11/2006, 09h09
  3. afficher version mysql
    Par gforce dans le forum Administration
    Réponses: 2
    Dernier message: 29/03/2006, 13h07
  4. [Clause In] et version MySQL
    Par titoux_fr dans le forum Requêtes
    Réponses: 4
    Dernier message: 16/01/2006, 14h44
  5. [EXISTS] Version MySql ou erreur syntaxe ?
    Par Kimael dans le forum Requêtes
    Réponses: 5
    Dernier message: 01/04/2004, 17h30

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