Bonjour, je cherche à faire une requête, je vous donne une image pour faire simple :


Le code MySQL :
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
28
29
30
31
32
CREATE TABLE `table_1` (
`table_1_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`table_1_nom` VARCHAR( 512 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_bin;
 
INSERT INTO `table_1` ( `table_1_id` , `table_1_nom` ) VALUES ( NULL , 'Machin' );
INSERT INTO `table_1` ( `table_1_id` , `table_1_nom` ) VALUES ( NULL , 'Truc' );
INSERT INTO `table_1` ( `table_1_id` , `table_1_nom` ) VALUES ( NULL , 'Bidule' );
INSERT INTO `table_1` ( `table_1_id` , `table_1_nom` ) VALUES ( NULL , 'Chose' );
 
 
CREATE TABLE `table_2` (
`table_2_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`table_2_mac` VARCHAR( 512 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_bin;
 
INSERT INTO `table_2` ( `table_2_id` , `table_2_mac` ) VALUES ( NULL , 'fr:3q:9o:zj:hb:3:d2' );
INSERT INTO `table_2` ( `table_2_id` , `table_2_mac` ) VALUES ( NULL , 'vc:21:1d:pm:dc:1q:fv' );
 
 
 
CREATE TABLE `table_3` (
`table_3_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`table_3_ip` VARCHAR( 512 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_bin;
 
INSERT INTO `table_3` ( `table_3_id` , `table_3_ip` ) VALUES ( NULL , '192.168.0.1' );
INSERT INTO `table_3` ( `table_3_id` , `table_3_ip` ) VALUES ( NULL , '192.168.0.2' );
INSERT INTO `table_3` ( `table_3_id` , `table_3_ip` ) VALUES ( NULL , '192.168.0.3' );
INSERT INTO `table_3` ( `table_3_id` , `table_3_ip` ) VALUES ( NULL , '10.0.0.4' );
INSERT INTO `table_3` ( `table_3_id` , `table_3_ip` ) VALUES ( NULL , '10.0.0.2' );
INSERT INTO `table_3` ( `table_3_id` , `table_3_ip` ) VALUES ( NULL , '172.16.3.1' );




Ca aurait du être :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
SELECT *
FROM `table_1`
LEFT OUTEr
  JOIN `table_2`
    ON table_1_id = table_2_id  
LEFT OUTEr
  JOIN `table_3`
    ON table_2_id = table_3_id
Le résultat de cette requête :

Mais apparament il ne prend que les ID de la première colonne alors qu'il me les faut tous.