Syntaxe de l'enregistrement d'une variable qui peut avoir plusieurs valeurs
Résolu/Fermé
Recoh
Messages postés
36
Date d'inscription
dimanche 19 juillet 2020
Statut
Membre
Dernière intervention
2 mars 2021
-
2 mars 2021 à 01:17
jordane45 Messages postés 38290 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 18 novembre 2024 - 2 mars 2021 à 11:13
jordane45 Messages postés 38290 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 18 novembre 2024 - 2 mars 2021 à 11:13
A voir également:
- Syntaxe de l'enregistrement d'une variable qui peut avoir plusieurs valeurs
- Comment enregistrer une video youtube - Guide
- Telecharger studio d'enregistrement rap - Télécharger - Édition & Montage
- Comment enregistrer une musique sur youtube en mp3 - Guide
- Excel liste de valeurs - Guide
3 réponses
jordane45
Messages postés
38290
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2024
4 704
2 mars 2021 à 08:45
2 mars 2021 à 08:45
Bonjour,
Donc, encore une fois, ta colonne "descriptif" est inutile et n'a pas à être stockée directement en BDD...
Voici un exemple :
(Créé toi une BDD de teste et utilise le script ci-dessous pour y créer les tables )
Maintenant... regarde ce que fait cette requête
Donc, encore une fois, ta colonne "descriptif" est inutile et n'a pas à être stockée directement en BDD...
Voici un exemple :
(Créé toi une BDD de teste et utilise le script ci-dessous pour y créer les tables )
CREATE TABLE IF NOT EXISTS `menu` ( `id` int(11) NOT NULL AUTO_INCREMENT, `libelle` varchar(50) DEFAULT NULL, `prix` decimal(10,2) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `plats` ( `id` int(11) NOT NULL AUTO_INCREMENT, `libelle` varchar(50) DEFAULT NULL, `prix_carte` decimal(10,2) DEFAULT NULL COMMENT 'prix à la carte ', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `menus_plats` ( `id_menu` int(11) DEFAULT NULL, `id_plat` int(11) DEFAULT NULL, KEY `id_menu` (`id_menu`), KEY `id_plat` (`id_plat`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; DELETE FROM `menus_plats`; INSERT INTO `menus_plats` (`id_menu`, `id_plat`) VALUES (1, 1), (1, 5), (2, 2), (2, 4); DELETE FROM `plats`; INSERT INTO `plats` (`id`, `libelle`, `prix_carte`) VALUES (1, 'Galette jambon', 6.00), (2, 'Galette au Saumon', 6.50), (3, 'Steack Frittes', 9.00), (4, 'Crêpe Caramel', 9.00), (5, 'Sorbet', 9.00); DELETE FROM `menu`; INSERT INTO `menu` (`id`, `libelle`, `prix`) VALUES (1, 'Menu 1', 10.00), (2, 'Menu 2', 9.00);
Maintenant... regarde ce que fait cette requête
SELECT M.libelle AS MENU_LIBELLE ,M.prix AS PRIX_MENU ,GROUP_CONCAT(P.libelle SEPARATOR ', ') AS DESCRIPTION_MENU FROM menus_plats MP LEFT JOIN menu M ON M.id = MP.id_menu LEFT JOIN plats P ON P.id = MP.id_plat GROUP BY M.id
Recoh
Messages postés
36
Date d'inscription
dimanche 19 juillet 2020
Statut
Membre
Dernière intervention
2 mars 2021
2 mars 2021 à 10:19
2 mars 2021 à 10:19
Merci de ta réponse jordane45, je comprends maintenant le lien entre la table jointure et les deux tables plats et menus. En entrant chaque lien entre un plat et un menu dans la table jointure, j'obtiens toutes les données des menus en une seule requête select alors qu'un plat peut figurer dans plusieurs menus. Cependant, j'ai aussi besoin de l'id_menus, je vais essayer de rajouter ça à la requête...
jordane45
Messages postés
38290
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2024
4 704
2 mars 2021 à 10:24
2 mars 2021 à 10:24
SELECT M.id as ID_MENU , M.libelle AS MENU_LIBELLE , M.prix AS PRIX_MENU , GROUP_CONCAT(P.libelle SEPARATOR ', ') AS DESCRIPTION_MENU FROM menus_plats MP LEFT JOIN menu M ON M.id = MP.id_menu LEFT JOIN plats P ON P.id = MP.id_plat GROUP BY M.id
Recoh
Messages postés
36
Date d'inscription
dimanche 19 juillet 2020
Statut
Membre
Dernière intervention
2 mars 2021
2 mars 2021 à 10:55
2 mars 2021 à 10:55
Oui c'est bien ce que j'ai obtenu, merci encore pour ta réponse, et rapide !
jordane45
Messages postés
38290
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2024
4 704
2 mars 2021 à 11:13
2 mars 2021 à 11:13
N'oublie pas de mettre le sujet en RESOLU.
Bonne journée.
Bonne journée.