Requête sur deux tables problème champ / chaine

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par julien__, 28 Avril 2011.

  1. julien__
    julien__ WRInaute occasionnel
    Inscrit:
    28 Décembre 2006
    Messages:
    271
    J'aime reçus:
    0
    Help!! je cherche mais rien à faire je trouve pas la solution

    voilà c'est une requête sur deux tables, dans base1, il y a un champ avec une liste de numéros de produit séparés par des virgules, et dans l'autre, catalogue, avec le numéro de produit et le numéro de l'image du produit.

    Le but c'est de récupéré tous les enregistrement de la table catalogue qui sont présent dans le champ produits de la base1

    SELECT base1.produits,catalogue.refproduit,catalogue.imageproduit FROM base1 INNER JOIN catalogue ON catalogue.refproduit IN (base1.produits) LIMIT 300

    Cette requête fonctionne pour tous les enregistrements qui ont un seul produit dans base1.produits (exactement égal), parce que les champs qui ont plusieurs produits dans base1.produits (exemple 2345,23467,3456,4567) ne marchent pas, IN ne fait pas son travail car dans la requête sql voit ça comme un champ, et non pas une chaine... Comment m'en sortir?
     
  2. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 593
    J'aime reçus:
    0
    La bonne solution c'est d'avoir une table intermédiaire pour faire la jointure entre les deux tables.

    Genre:
    base1: (id, autres champs)
    catalogue: (id, autres champs)
    table_de_jointure: (id_base1, id_catalogue)

    Sinon avec mysql je ne crois pas que ce soit possible. Avec postgresql ça se fait sans problème avec = ANY(regexp_split_to_array(champ,delimiteur)) par exemple, mais je ne crois pas que l'équivalent existe sur mysql (et c'est de toutes façons généralement moins performant que la table intermédiaire si tu as les bons index là où il faut).

    Jacques.
     
  3. julien__
    julien__ WRInaute occasionnel
    Inscrit:
    28 Décembre 2006
    Messages:
    271
    J'aime reçus:
    0
    Cette table de jointure, j'étais justement entrain de la faire... et avec succès, cela veut dire que j'ai finalement un bon instinct... :D merci pour ta réponse...
     
Chargement...
Similar Threads - Requête tables problème Forum Date
Problème de jointure entre deux tables requête SQL Développement d'un site Web ou d'une appli mobile 11 Avril 2011
Plutôt une grosse requête multitables ou plein de requêtes séparées ? Développement d'un site Web ou d'une appli mobile 24 Mai 2017
[MySQL] Requête SELECT et INSERT entre 3 tables liées+Aide Développement d'un site Web ou d'une appli mobile 30 Avril 2014
PB résultat Requête SQL avec jointure 3 tables Développement d'un site Web ou d'une appli mobile 12 Juin 2013
[MySQL] Requête SELECT entre 3 tables liées Développement d'un site Web ou d'une appli mobile 10 Août 2011
[Résolu] PB requete SQL 3 tables + 2 count Développement d'un site Web ou d'une appli mobile 25 Janvier 2010
encodage texte sur requete mysql Demandes d'avis et de conseils sur vos sites Mercredi à 16:55
Requête MySql imbriquée Développement d'un site Web ou d'une appli mobile 8 Octobre 2020
Comment se placer sur des requêtes inhabituelles dû au confinement Rédaction web et référencement 25 Mars 2020
Requête Ajax avec code source visible Développement d'un site Web ou d'une appli mobile 14 Mars 2020