Bonsoir,
J'aimerais sélection des données dans 3 tables différentes à l'aide d'un Select et quelques joins, mais j'ai quelques souciJe n'arrive qu'à faire un cross operateur.
Mon paramètre de ma requête est l'id du lunch, en retour je devrais recevoir les desserts, les starters et les maincourses d'un lunch spécifique.
En gros j'aimerais avoir une requête qui me renvoit les troix colones au lieu d'avoir 3 requêtes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT name FROM starters, lunch WHERE lunch.id = 1; SELECT name FROM maincourses, lunch WHERE lunch.id =1; SELECT name FROM desserts, lunch WHERE lunch.id = 1;
Par exemple pour id 1 :
desserts starters maincourses
dessert1 start1 main1
dessert2 start2 main2
dessert3 start3 main3
dessert4 start4 main4
dessert5 start5 main5
Voici mes tables :
lunch :
starters
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CREATE TABLE IF NOT EXISTS `lunch` ( `id` smallint(5) unsigned NOT NULL auto_increment, `from` varchar(20) NOT NULL, `until` varchar(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
maincourses
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 CREATE TABLE IF NOT EXISTS `starters` ( `id` smallint(5) unsigned NOT NULL, `name` varchar(200) NOT NULL, `flag` enum('lunch','menu') NOT NULL default 'lunch', KEY `id` (`id`,`name`,`flag`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
desserts
Code : Sélectionner tout - Visualiser dans une fenêtre à part CREATE TABLE maincourses SELECT LIKE starters
Et quelques données :
Code : Sélectionner tout - Visualiser dans une fenêtre à part CREATE TABLE desserts SELECT LIKE starters
Merci beaucoup d'avance !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 INSERT INTO `lunch` (`id`, `from`, `until`) VALUES (1, '06/01/2009', '13/01/2009'); INSERT INTO `desserts` (`id`, `name`, `flag`) VALUES (1, 'dessert1', 'lunch'), (1, 'dessert2', 'lunch'), (1, 'dessert3', 'lunch'), (1, 'dessert4', 'lunch'), (1, 'dessert5', 'lunch'); INSERT INTO `maincourses` (`id`, `name`, `flag`) VALUES (1, 'main1', 'lunch'), (1, 'main2', 'lunch'), (1, 'main3', 'lunch'), (1, 'main4', 'lunch'), (1, 'main5', 'lunch'); INSERT INTO `starters` (`id`, `name`, `flag`) VALUES (1, 'start1', 'lunch'), (1, 'start2', 'lunch'), (1, 'start3', 'lunch'), (1, 'start4', 'lunch'), (1, 'start5', 'lunch');
Partager