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 :

Requête avec champ variable en fonction de la version de la BDD


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 4
    Par défaut Requête avec champ variable en fonction de la version de la BDD
    Je vous explique mon problème ...

    J'ai une BDD dont je ne maitrise pas la création et modification des champs (PRESTASHOP pour ne pas la citer) dont un des champs d'une table vient d'être renommé et cela me pose un problème sur les jointures.

    En effet, le champ donné existe mais porte soit le nom id_tax soit le nom id_tax_rules_group (en fonction de la version de prestashop)

    Un extrait de ma requête ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT o.id_order, o.invoice_date, o.id_customer, c.id_gender, ad.lastname, ad.firstname, ad.company, c.birthday, ad.phone_mobile, 
    c.email, ad.address1, ad.address2, ad.city, ad.postcode, cadl.name, ad.phone, ai.address1 AS delivery_address1, 
    ai.address2 AS delivery_address2, ai.city AS delivery_city, ai.postcode AS delivery_postcode, cail.name AS delivery_name, 
    o.payment, cu.name AS currency, o.total_products, o.total_paid_real, IFNULL(o.total_products_wt, o.total_paid) as total_products_wt, o.total_shipping, o.date_add, o.delivery_info, 
    ca.name AS shipping_method, IFNULL(t.rate, 0) AS shipping_rate
    FROM psf_orders AS o, psf_customer AS c, psf_address AS ad, psf_address AS ai, psf_country AS cad,
    psf_country AS cai, psf_country_lang AS cadl, psf_country_lang AS cail, psf_currency AS cu,
    psf_order_history AS oh, psf_order_state AS os, psf_order_state_lang AS osl, psf_carrier AS ca 
    LEFT JOIN psf_tax AS t ON (ca.id_tax_rules_group = t.id_tax)
    WHERE o.id_address_invoice = ad.id_address
    AND ad.id_country = cad.id_country ...
    Le problème est sur le champ en gras qui fait partie d'un LEFT JOIN.

    J'ai essayé en testant l'existence du champ avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SHOW COLUMNS FROM psf_tax_rules_group LIKE 'id_tax_rules_group'
    qui retourne bien 1 enregistrement si le champ est nommé de cette manière et 0 s'il n'existe pas, mais je n'arrive pas à traiter ce résultat dans l'idée d'un IF(resultat show_columns =1,'id_tax_rules_group','id_tax')

    Si quelqu'un a un idée, j'ai passé plusieurs heures dessus, et ne trouve pas de solutions :-(

    Merci par avance.

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Je ne vois pas d'autre solution que de tester la version de Prestashop dans ton code et d'adapter la requête en conséquence.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 4
    Par défaut
    Merci pour la réponse ...

    Mais, cela m'est impossible, je ne peux travailler qu'avec une requête SQL.

    Mon application gère OsCommerce et Prestashop, il m'est impossible de sortir d'une requête !

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par point2vente Voir le message
    Mon application
    Si c'est ton application, tu peux la modifier comme tu veux non ?

    Si vraiment tu ne peux pas changer le code de cette application, je suppose qu'il existe un forum Prestashop et que d'autres utilisateurs ont dû être confrontés au même problème.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 4
    Par défaut
    Merci pour votre réponse.

    Bien sur que je peux modifier mon application, mais il est impossible que je puisse rajouter un test comme celui-ci, il faut que je trouve une solution par le SQL ; je reste persuadé qu'il existe une possibilité autour des IF ou triggers pour réaliser ce test.

    Il doit bien y avoir la possibilité de créer une fonction qui sera exécutée avec la requête d'INSERT, requête qui aurait le nom du champ 'variable' en paramètre, lui même renvoyé par la fonction !

  6. #6
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par point2vente Voir le message
    Bien sur que je peux modifier mon application, mais il est impossible que je puisse rajouter un test comme celui-ci
    Pourquoi donc ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. [AC-2007] Requête avec champ variable
    Par philmarseille dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 17/01/2012, 07h39
  2. [Toutes versions] Requêtes avec champs variables
    Par damsmut dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 05/05/2010, 09h27
  3. Requête SQL avec champs variable
    Par yannydu dans le forum Débuter
    Réponses: 14
    Dernier message: 21/04/2009, 12h41
  4. Faite une requête avec une variable contenu dans un champ
    Par Space Cowboy dans le forum Débuter
    Réponses: 3
    Dernier message: 18/11/2008, 14h45
  5. Création requète avec champs heure
    Par philpaul dans le forum Contribuez
    Réponses: 24
    Dernier message: 30/09/2005, 15h53

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