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
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
PROCEDURE MYSQLPROCEDURE MYSQL par gearmat
Cliquez pour lire la suite par gearmat
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|