Syntaxe de l'enregistrement d'une variable qui peut avoir plusieurs valeurs
Résolu
Recoh
Messages postés
36
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38483 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38483 Date d'inscription Statut Modérateur Dernière intervention -
A voir également:
- Syntaxe de l'enregistrement d'une variable qui peut avoir plusieurs valeurs
- Enregistrement mp3 gratuit - Télécharger - Streaming audio
- Telecharger studio d'enregistrement rap - Télécharger - Édition & Montage
- Dans son restaurant, igor utilise une application pour gérer les réservations. dans le schéma (structure) de la base de données de l’application représenté ci-dessous : de quoi « telephone » est-il le nom ? de quoi « reservations » est-il le nom ? associez chaque terme avec un attribut, une donnée, un enregistrement, une table, une valeur ou une variable. - Forum Webmastering
- Comment enregistrer une musique sur youtube en mp3 - Guide
- Enregistrement - Guide
3 réponses
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
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...