Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrice
Le plus clair pour débuter serait la clause EXISTS :
SELECT * FROM Recettes WHERE EXISTS(SELECT 1 FROM Ingredient WHERE Id_Recette=Id AND Nom='Ingredient1') AND EXISTS(SELECT 1 FROM Ingredient WHERE Id_Recette=Id AND Nom='Ingredient2')
En clair les recettes pour lesquelles il existe une ligne pour l'ingrédient 1 et une ligne avec l'ingrédient 2 pour cette même recette...
Après il y a des variations possibles avec par exemple des LEFT JOIN, des regroupements etc... au détriment de la clarté de l'objectif poursuivi.
Voir par exemple http://sql.developpez.com/sqlaz/sousrequetes/#L1.5.1 et plus généralement le site pour une initiation....
--- Patrice
"JO" a écrit dans le message de news:
bonjour, j'ai une table recette, une table ingredient, Ingredient_Recette.
Ds Recette: Id, Nom Ds Ingredient: Id, Nom Ds Ingredient_Recette: Id_Recette,Id_Ingredient, Qte
Comment puis je faire une requete qui me permet de remonter toutes les recettes qui contiennent Ingredient1 ET Ingredient2...
Merci
Le plus clair pour débuter serait la clause EXISTS :
SELECT * FROM Recettes
WHERE EXISTS(SELECT 1 FROM Ingredient WHERE Id_Recette=Id AND
Nom='Ingredient1')
AND EXISTS(SELECT 1 FROM Ingredient WHERE Id_Recette=Id AND
Nom='Ingredient2')
En clair les recettes pour lesquelles il existe une ligne pour l'ingrédient
1 et une ligne avec l'ingrédient 2 pour cette même recette...
Après il y a des variations possibles avec par exemple des LEFT JOIN, des
regroupements etc... au détriment de la clarté de l'objectif poursuivi.
Voir par exemple http://sql.developpez.com/sqlaz/sousrequetes/#L1.5.1 et
plus généralement le site pour une initiation....
---
Patrice
"JO" <nospam@nospam.fr> a écrit dans le message de news:
mn.b2b37d75b8899ec1.62161@nospam.fr...
bonjour,
j'ai une table recette, une table ingredient, Ingredient_Recette.
Ds Recette: Id, Nom
Ds Ingredient: Id, Nom
Ds Ingredient_Recette: Id_Recette,Id_Ingredient, Qte
Comment puis je faire une requete qui me permet de remonter toutes les
recettes qui contiennent Ingredient1 ET Ingredient2...
Le plus clair pour débuter serait la clause EXISTS :
SELECT * FROM Recettes WHERE EXISTS(SELECT 1 FROM Ingredient WHERE Id_Recette=Id AND Nom='Ingredient1') AND EXISTS(SELECT 1 FROM Ingredient WHERE Id_Recette=Id AND Nom='Ingredient2')
En clair les recettes pour lesquelles il existe une ligne pour l'ingrédient 1 et une ligne avec l'ingrédient 2 pour cette même recette...
Après il y a des variations possibles avec par exemple des LEFT JOIN, des regroupements etc... au détriment de la clarté de l'objectif poursuivi.
Voir par exemple http://sql.developpez.com/sqlaz/sousrequetes/#L1.5.1 et plus généralement le site pour une initiation....
--- Patrice
"JO" a écrit dans le message de news:
bonjour, j'ai une table recette, une table ingredient, Ingredient_Recette.
Ds Recette: Id, Nom Ds Ingredient: Id, Nom Ds Ingredient_Recette: Id_Recette,Id_Ingredient, Qte
Comment puis je faire une requete qui me permet de remonter toutes les recettes qui contiennent Ingredient1 ET Ingredient2...
Merci
Patrice
Oups. Manque le join pour récupérer le nom des ingrédients et l'alias pour lever l'ambigüité sur le nom ce qui donnerait finalement quelque chose comme :
SELECT * FROM Recette WHERE EXISTS(SELECT 1 FROM Ingredient_Recette JOIN Ingredient ON Id_Ingredient=Ingredient.Id WHERE Id_Recette=Recette.Id AND Ingredient.Nom='Ingredient1') SELECT 1 FROM Ingredient_Recette JOIN Ingredient ON Id_Ingredient=Ingredient.Id WHERE Id_Recette=Recette.Id AND Ingredient.Nom='Ingredient2')
-- Patrice
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
Le plus clair pour débuter serait la clause EXISTS :
SELECT * FROM Recettes WHERE EXISTS(SELECT 1 FROM Ingredient WHERE Id_Recette=Id AND Nom='Ingredient1') AND EXISTS(SELECT 1 FROM Ingredient WHERE Id_Recette=Id AND Nom='Ingredient2')
En clair les recettes pour lesquelles il existe une ligne pour l'ingrédient 1 et une ligne avec l'ingrédient 2 pour cette même recette...
Après il y a des variations possibles avec par exemple des LEFT JOIN, des regroupements etc... au détriment de la clarté de l'objectif poursuivi.
Voir par exemple http://sql.developpez.com/sqlaz/sousrequetes/#L1.5.1 et plus généralement le site pour une initiation....
--- Patrice
"JO" a écrit dans le message de news:
bonjour, j'ai une table recette, une table ingredient, Ingredient_Recette.
Ds Recette: Id, Nom Ds Ingredient: Id, Nom Ds Ingredient_Recette: Id_Recette,Id_Ingredient, Qte
Comment puis je faire une requete qui me permet de remonter toutes les recettes qui contiennent Ingredient1 ET Ingredient2...
Merci
Oups. Manque le join pour récupérer le nom des ingrédients et l'alias pour
lever l'ambigüité sur le nom ce qui donnerait finalement quelque chose comme
:
SELECT * FROM Recette
WHERE EXISTS(SELECT 1 FROM Ingredient_Recette JOIN Ingredient ON
Id_Ingredient=Ingredient.Id WHERE Id_Recette=Recette.Id AND
Ingredient.Nom='Ingredient1')
SELECT 1 FROM Ingredient_Recette JOIN Ingredient ON
Id_Ingredient=Ingredient.Id WHERE Id_Recette=Recette.Id AND
Ingredient.Nom='Ingredient2')
--
Patrice
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
eusjBfFnHHA.5032@TK2MSFTNGP02.phx.gbl...
Le plus clair pour débuter serait la clause EXISTS :
SELECT * FROM Recettes
WHERE EXISTS(SELECT 1 FROM Ingredient WHERE Id_Recette=Id AND
Nom='Ingredient1')
AND EXISTS(SELECT 1 FROM Ingredient WHERE Id_Recette=Id AND
Nom='Ingredient2')
En clair les recettes pour lesquelles il existe une ligne pour
l'ingrédient 1 et une ligne avec l'ingrédient 2 pour cette même recette...
Après il y a des variations possibles avec par exemple des LEFT JOIN, des
regroupements etc... au détriment de la clarté de l'objectif poursuivi.
Voir par exemple http://sql.developpez.com/sqlaz/sousrequetes/#L1.5.1 et
plus généralement le site pour une initiation....
---
Patrice
"JO" <nospam@nospam.fr> a écrit dans le message de news:
mn.b2b37d75b8899ec1.62161@nospam.fr...
bonjour,
j'ai une table recette, une table ingredient, Ingredient_Recette.
Ds Recette: Id, Nom
Ds Ingredient: Id, Nom
Ds Ingredient_Recette: Id_Recette,Id_Ingredient, Qte
Comment puis je faire une requete qui me permet de remonter toutes les
recettes qui contiennent Ingredient1 ET Ingredient2...
Oups. Manque le join pour récupérer le nom des ingrédients et l'alias pour lever l'ambigüité sur le nom ce qui donnerait finalement quelque chose comme :
SELECT * FROM Recette WHERE EXISTS(SELECT 1 FROM Ingredient_Recette JOIN Ingredient ON Id_Ingredient=Ingredient.Id WHERE Id_Recette=Recette.Id AND Ingredient.Nom='Ingredient1') SELECT 1 FROM Ingredient_Recette JOIN Ingredient ON Id_Ingredient=Ingredient.Id WHERE Id_Recette=Recette.Id AND Ingredient.Nom='Ingredient2')
-- Patrice
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
Le plus clair pour débuter serait la clause EXISTS :
SELECT * FROM Recettes WHERE EXISTS(SELECT 1 FROM Ingredient WHERE Id_Recette=Id AND Nom='Ingredient1') AND EXISTS(SELECT 1 FROM Ingredient WHERE Id_Recette=Id AND Nom='Ingredient2')
En clair les recettes pour lesquelles il existe une ligne pour l'ingrédient 1 et une ligne avec l'ingrédient 2 pour cette même recette...
Après il y a des variations possibles avec par exemple des LEFT JOIN, des regroupements etc... au détriment de la clarté de l'objectif poursuivi.
Voir par exemple http://sql.developpez.com/sqlaz/sousrequetes/#L1.5.1 et plus généralement le site pour une initiation....
--- Patrice
"JO" a écrit dans le message de news:
bonjour, j'ai une table recette, une table ingredient, Ingredient_Recette.
Ds Recette: Id, Nom Ds Ingredient: Id, Nom Ds Ingredient_Recette: Id_Recette,Id_Ingredient, Qte
Comment puis je faire une requete qui me permet de remonter toutes les recettes qui contiennent Ingredient1 ET Ingredient2...
Merci
JO
Patrice a formulé la demande :
Oups. Manque le join pour récupérer le nom des ingrédients et l'alias pour lever l'ambigüité sur le nom ce qui donnerait finalement quelque chose comme :
SELECT * FROM Recette WHERE EXISTS(SELECT 1 FROM Ingredient_Recette JOIN Ingredient ON Id_Ingredient=Ingredient.Id WHERE Id_Recette=Recette.Id AND Ingredient.Nom='Ingredient1') SELECT 1 FROM Ingredient_Recette JOIN Ingredient ON Id_Ingredient=Ingredient.Id WHERE Id_Recette=Recette.Id AND Ingredient.Nom='Ingredient2')
-- Patrice
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
Le plus clair pour débuter serait la clause EXISTS :
SELECT * FROM Recettes WHERE EXISTS(SELECT 1 FROM Ingredient WHERE Id_Recette=Id AND Nom='Ingredient1') AND EXISTS(SELECT 1 FROM Ingredient WHERE Id_Recette=Id AND Nom='Ingredient2')
En clair les recettes pour lesquelles il existe une ligne pour l'ingrédient 1 et une ligne avec l'ingrédient 2 pour cette même recette...
Après il y a des variations possibles avec par exemple des LEFT JOIN, des regroupements etc... au détriment de la clarté de l'objectif poursuivi.
Voir par exemple http://sql.developpez.com/sqlaz/sousrequetes/#L1.5.1 et plus généralement le site pour une initiation....
--- Patrice
"JO" a écrit dans le message de news:
bonjour, j'ai une table recette, une table ingredient, Ingredient_Recette.
Ds Recette: Id, Nom Ds Ingredient: Id, Nom Ds Ingredient_Recette: Id_Recette,Id_Ingredient, Qte
Comment puis je faire une requete qui me permet de remonter toutes les recettes qui contiennent Ingredient1 ET Ingredient2...
Merci
merci
Patrice a formulé la demande :
Oups. Manque le join pour récupérer le nom des ingrédients et l'alias pour
lever l'ambigüité sur le nom ce qui donnerait finalement quelque chose comme
:
SELECT * FROM Recette
WHERE EXISTS(SELECT 1 FROM Ingredient_Recette JOIN Ingredient ON
Id_Ingredient=Ingredient.Id WHERE Id_Recette=Recette.Id AND
Ingredient.Nom='Ingredient1')
SELECT 1 FROM Ingredient_Recette JOIN Ingredient ON
Id_Ingredient=Ingredient.Id WHERE Id_Recette=Recette.Id AND
Ingredient.Nom='Ingredient2')
--
Patrice
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
eusjBfFnHHA.5032@TK2MSFTNGP02.phx.gbl...
Le plus clair pour débuter serait la clause EXISTS :
SELECT * FROM Recettes
WHERE EXISTS(SELECT 1 FROM Ingredient WHERE Id_Recette=Id AND
Nom='Ingredient1')
AND EXISTS(SELECT 1 FROM Ingredient WHERE Id_Recette=Id AND
Nom='Ingredient2')
En clair les recettes pour lesquelles il existe une ligne pour l'ingrédient
1 et une ligne avec l'ingrédient 2 pour cette même recette...
Après il y a des variations possibles avec par exemple des LEFT JOIN, des
regroupements etc... au détriment de la clarté de l'objectif poursuivi.
Voir par exemple http://sql.developpez.com/sqlaz/sousrequetes/#L1.5.1 et
plus généralement le site pour une initiation....
---
Patrice
"JO" <nospam@nospam.fr> a écrit dans le message de news:
mn.b2b37d75b8899ec1.62161@nospam.fr...
bonjour,
j'ai une table recette, une table ingredient, Ingredient_Recette.
Ds Recette: Id, Nom
Ds Ingredient: Id, Nom
Ds Ingredient_Recette: Id_Recette,Id_Ingredient, Qte
Comment puis je faire une requete qui me permet de remonter toutes les
recettes qui contiennent Ingredient1 ET Ingredient2...
Oups. Manque le join pour récupérer le nom des ingrédients et l'alias pour lever l'ambigüité sur le nom ce qui donnerait finalement quelque chose comme :
SELECT * FROM Recette WHERE EXISTS(SELECT 1 FROM Ingredient_Recette JOIN Ingredient ON Id_Ingredient=Ingredient.Id WHERE Id_Recette=Recette.Id AND Ingredient.Nom='Ingredient1') SELECT 1 FROM Ingredient_Recette JOIN Ingredient ON Id_Ingredient=Ingredient.Id WHERE Id_Recette=Recette.Id AND Ingredient.Nom='Ingredient2')
-- Patrice
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
Le plus clair pour débuter serait la clause EXISTS :
SELECT * FROM Recettes WHERE EXISTS(SELECT 1 FROM Ingredient WHERE Id_Recette=Id AND Nom='Ingredient1') AND EXISTS(SELECT 1 FROM Ingredient WHERE Id_Recette=Id AND Nom='Ingredient2')
En clair les recettes pour lesquelles il existe une ligne pour l'ingrédient 1 et une ligne avec l'ingrédient 2 pour cette même recette...
Après il y a des variations possibles avec par exemple des LEFT JOIN, des regroupements etc... au détriment de la clarté de l'objectif poursuivi.
Voir par exemple http://sql.developpez.com/sqlaz/sousrequetes/#L1.5.1 et plus généralement le site pour une initiation....
--- Patrice
"JO" a écrit dans le message de news:
bonjour, j'ai une table recette, une table ingredient, Ingredient_Recette.
Ds Recette: Id, Nom Ds Ingredient: Id, Nom Ds Ingredient_Recette: Id_Recette,Id_Ingredient, Qte
Comment puis je faire une requete qui me permet de remonter toutes les recettes qui contiennent Ingredient1 ET Ingredient2...