Accueil > Forum > > > > SELECT rapatriement multiple de données suivant liste id à virgule
SELECT rapatriement multiple de données suivant liste id à virgule
mardi 16 septembre 2008 à 20:05:14 |
SELECT rapatriement multiple de données suivant liste id à virgule

alphanono
|
Désolé pour ce titre foireux ... j'ai essayé de faire court pour un problème que j'ai du mal à exprimer simplement.
Je vais prendre un exemple fictif.
Mettons qu'on ait 2 tables. Une de recettes et une d'ingrédients. Dans la table d'ingrédients, j'ai une colonne id_ingredient et une colonne nom_ingredient Dans la table recettes, j'ai notamment une colonne ref_ingredients où je stocke les id des ingrédients utilisés. Genre ref_ingredients : 10,52,78,132.
Est-il possible directement dans une requête SELECT sur la table recettes de récupérer la liste des noms des ingrédients suivant la liste à virgule des ids renseignée dans ref_ingrédients ??
Heu ... j'ai été claire là ? ...
|
|
mardi 16 septembre 2008 à 21:21:39 |
Re : SELECT rapatriement multiple de données suivant liste id à virgule

nhervagault
|
Salut
C'est que ta base est mal modélisée, il faut faire une table intermédiaire.
Avec un select in (1,2,3,..) peut etre que tu y arriveras.
|
|
mardi 16 septembre 2008 à 22:28:27 |
Re : SELECT rapatriement multiple de données suivant liste id à virgule

alphanono
|
okok ... et à part ça, quelqu'un a une idée ?
|
|
mercredi 17 septembre 2008 à 14:10:16 |
Re : SELECT rapatriement multiple de données suivant liste id à virgule

crn_c21
|
SELECT Nom_Ingredient FROM ingrédientswhere Id_Ingredient IN (10,52,78,132)
par exemple
ou
SELECT Nom_Ingredient FROM ingrédients where Id_Ingredient IN (SELECT ref_ingredient FROM recette WHERE Nom_recette='Tarte Citron')
|
|
mercredi 17 septembre 2008 à 14:45:17 |
Re : SELECT rapatriement multiple de données suivant liste id à virgule

alphanono
|
Merci ... mais je savais que ça ne serait pas très claire ... Le SELECT IN c'est ok. Mais c'est pas tout à fait ce que je cherche à faire. Je voudrais pouvoir éviter une requête PHP grâce à SQL si possible.
Je prend un exemple toujours : TABLE RECETTES : id_recette nom_recette ref_ingredients 1 tarte 10,2,3
TABLE INGREDIENTS id_ingredient nom_ingredient 2 farine 3 sucre 10 fraise
J'aimerais pouvoir exécuter une requête qui me permettrait d'avoir en retour :
id_recette nom_recette ref_ingredients noms_ingredients 1 tarte 10,2,3 fraise,farine,sucre
C'est peut-être un peu tordu comme ça et c'est sûr que dans cet exemple de recettes, il vaudrait mieux passer par une table intérmédiaire enregistrant 1 id de recette pour 1 id d'ingrédient. Seulement dans mon cas concret ... c'est pas possible.
|
|
mercredi 17 septembre 2008 à 14:55:29 |
Re : SELECT rapatriement multiple de données suivant liste id à virgule

crn_c21
|
Je vois pa le truc possible en une seule requète, vaudrai mieux passer par une procédure stockée!!
|
|
mercredi 17 septembre 2008 à 19:29:49 |
Re : SELECT rapatriement multiple de données suivant liste id à virgule

nhervagault
|
En sqlserver 2005, On a (extrait de http://www.developpez.net/forums/d33411-2/bases-donnees/langage-sql/creation-faq-sql-voulez-participer/) CREATETABLE Territoire (IdVendeur integer, Ville varchar(20)) INSERTINTO Territoire VALUES(1, 'Paris'); INSERTINTO Territoire VALUES(1, 'Lille'); INSERTINTO Territoire VALUES(1, 'Lyon'); INSERTINTO Territoire VALUES(1, 'Marseille'); INSERTINTO Territoire VALUES(1, 'Bordeaux'); INSERTINTO Territoire VALUES(2, 'Paris'); INSERTINTO Territoire VALUES(2, 'Lyon'); INSERTINTO Territoire VALUES(2, 'Brest'); INSERTINTO Territoire VALUES(3, 'Paris'); WITH px (idVendeur, Villes, Precedente, Niveau)AS (SELECT IdVendeur, cast(Ville AS varchar(MAX)), cast (ville AS varchar(MAX)), 1 FROM Territoire a WHERE Ville = (SELECT min(Ville)FROM Territoire b WHERE a.idVendeur = b.idVendeur) union ALL SELECT a.IdVendeur, px.Villes + ';' + a.ville, cast(a.Ville AS varchar(max)), Niveau + 1 FROM Territoire a INNERJOIN px ON a.idVendeur = px.idVendeur AND a.Ville > px.Precedente ) SELECT IdVendeur, Villes FROM px a WHERE Niveau = (SELECT max(Niveau)FROM px b WHERE a.idVendeur = b.idVendeur) C'est ce qui s'appele une CTE common table expression requete recursive avec une procedure stockée ou par du code. il est possible de faire le meme résultat Je mets l'exemple au cas où un autre membre cherche la même chose mais sur SQL SERVEUR Bon coding
|
|
Cette discussion est classée dans : liste, select, id, virgule, ingrédients
Répondre à ce message
Sujets en rapport avec ce message
Faire plusieurs if dans un procedure stockee [ par chris81 ]
bonjour,comment puis je faire pour verifier plusiseurs if dans la meme procedure stockee c'est a direif not exist(SELECT Id FROM...) et if not exists(
Select sans doublon avec date la plus recente [ par ironnyc ]
Bonjour a tous!je cherche a faire une requete Select avec une base MySql sur la table suivante: #Table "historique"+-----+-------------+------------+|
Select lent avec Inner Join et Order [ par vincentstryckmans ]
Bonjour,Je souhaite trier une table table1 en fonction d'un champ d'une table2.Ces deux tables ont un champ qui les lient : table1.id_table2 et table2
Select Distinct sur une colonne [ par thiosyiasar ]
Bonjour,Je veux récupérer une liste d'utilisateur dans une table utilisateur. (id, nom, prénom, email)L'application qui alimente la table ne prend pas
update avec select avec group by ... ouille :-/ [ par loic72 ]
bonsoir,j'ai une question pour ceux qui métrisent les requete update aliant les select qui utilisent les group by?Je m'explique. Voici ma requete vous
Requete Imbriqué Erreur Aussi :s [ par SF2Boss ]
Voici La requete Rebelle : SELECT </s
utilisation de IsEmpty() [ par bootchoz ]
bonjour, je n'arrive pas à utiliser cette fonction.je voudrais verifier si un select me renvoit une cellule vide. J'avais ecrit cela mais @var ne vaut
Select paginé [ par thiosyiasar ]
Bonjour a tous,Pour une page aspx, je voudrais faire un select paginé du genre : SELECT TOP (@nb_ligne) * FROM newsletter WHERE nlt_id in( SELECT nlt
Problème de select multiples dans plusieurs tables [ par superseb801 ]
bonjour, J'ai un problème, je voudrais faire une requête sur plusieurs tables en même temps (3 pour être plus précis), et avec d'autres SELECT dans le
PROBLEME REQUETE SELECT [ par brute ]
Bonjour,J'ai un probleme de REQUETE SELECT avec ORacle .J4ai une table avec 4 colonnes, ID, FACE, PARAM, VALEURl'ID prend les valeurs (1 ou 2 ou 3 ou
Livres en rapport
|
Derniers Blogs
CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT)CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT) par FREMYCOMPANY
Bonjour à tous, Je viens de publier une proposition comprenant 5 pseudo-classes pour le CSS Working Group ayant trait à l'état de chargement d'un élément (ex: IMG,VIDEO,AUDIO,OBJECT pour l'HTML.). Si le c½ur vous en dit, vous pouvez retrouver cette p...
Cliquez pour lire la suite de l'article par FREMYCOMPANY MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril
Logiciels
Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning Academy System (17.1.3.0)ACADEMY SYSTEM (17.1.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|