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
COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ?MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ? par junarnoalg
La prochaine session de MyTIC aura lieu à Namur, le 23 mars prochain. Pendant presque une heure, nous parlerons de SharePoint 2010. Voici un aperçu du programme.
Accueil : 17h30 Début de la session : 18h00 - Les nouvelles int...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
MYSQLSERVERMYSQLSERVER par favella
Cliquez pour lire la suite par favella
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
Comparez les prix

HTC Hero
Entre 550€ et 550€
|