Jointure et Rand()
Résolu
ephelya
Messages postés
282
Date d'inscription
Statut
Membre
Dernière intervention
-
ephelya Messages postés 282 Date d'inscription Statut Membre Dernière intervention -
ephelya Messages postés 282 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je suis en train de me créer un outil qui est supposé me suggérer des recettes de cuisine.
J'ai ces 3 table:
Mon pb c'est que les recettes ont été enregistrées par lots (100 desserts puis 40 plats principaux puis 200 entrées etc.) donc quand je veux afficher les 10 dernières recettes enregistrées par exemple, ça me sort uniquement des plats ou uniquement des desserts etc.
Je ne trouve pas quelle requête faire pour que ça me sorte les X dernières recettes enregistrées ET que les catégories soient dans un ordre aléatoire, pour avoir un dessert, puis une soupe, puis un poisson etc. et que ces recettes soient les dernières recettes enregistrées de la catégorie en question.
Quelqu'un peut m'aider svp ?
Je suis en train de me créer un outil qui est supposé me suggérer des recettes de cuisine.
J'ai ces 3 table:
CREATE TABLE `categories_recettes` ( `id` int(5) NOT NULL, `categorie` varchar(100) COLLATE latin1_general_ci NOT NULL, `master` int(1) NOT NULL DEFAULT '0', `type_cat` int(3) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; CREATE TABLE `cat_recipe` ( `idcat` int(5) NOT NULL, `idrecipe` int(5) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; CREATE TABLE `recettes` ( `id` int(10) NOT NULL, `titre` varchar(500) COLLATE latin1_general_ci NOT NULL, `url` varchar(500) COLLATE latin1_general_ci NOT NULL, `img` varchar(1500) COLLATE latin1_general_ci NOT NULL, `note` varchar(10) COLLATE latin1_general_ci NOT NULL, `recette` varchar(5000) COLLATE latin1_general_ci NOT NULL, `img_updated` int(1) NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
Mon pb c'est que les recettes ont été enregistrées par lots (100 desserts puis 40 plats principaux puis 200 entrées etc.) donc quand je veux afficher les 10 dernières recettes enregistrées par exemple, ça me sort uniquement des plats ou uniquement des desserts etc.
Je ne trouve pas quelle requête faire pour que ça me sorte les X dernières recettes enregistrées ET que les catégories soient dans un ordre aléatoire, pour avoir un dessert, puis une soupe, puis un poisson etc. et que ces recettes soient les dernières recettes enregistrées de la catégorie en question.
Quelqu'un peut m'aider svp ?
Configuration: Macintosh / Firefox 94.0
A voir également:
- Jointure et Rand()
- Jointure excel - Guide
- Rand() et RAND_MAX ✓ - Forum C
- Pb de jointure ✓ - Forum MySQL
- [Excel,vba,ado] faire une jointure de tables - Forum VB / VBA
- Problème fonction rand() C - Forum C
5 réponses
Bonjour,
Essaye un truc du genre
Essaye un truc du genre
SELECT * FROM cat_recipe CR LEFT JOIN recettes R ON R.id = CR.idrecipe ORDER BY RAND() LIMIT 10
Hello Jordane,
Le pb c'est que si je fais ça, ça ne me sortira pas les dernières recettes enregistrées or c'est un critère incontournable. Je viens d'ajouter des recettes de Noël, je ne veux pas que ça me sorte des gaspachos...
Le pb c'est que si je fais ça, ça ne me sortira pas les dernières recettes enregistrées or c'est un critère incontournable. Je viens d'ajouter des recettes de Noël, je ne veux pas que ça me sorte des gaspachos...
J'ai essayé de faire
mais quand j'actualise, j'ai toujours exactement les mêmes résultats et les recettes sont toujours par lots
SELECT * FROM
(SELECT * FROM cat_recipe ORDER BY Rand()) CAT
LEFT JOIN
(SELECT * FROM recettes ORDER BY id DESC) REC
ON REC.id = CAT.idrecipe
mais quand j'actualise, j'ai toujours exactement les mêmes résultats et les recettes sont toujours par lots
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question