sql pour lier deux tables
Bonjour
Je voudrai faire une requête SQL entre 2 tables sur une base donnée exemple ci-dessous.
Mon but est de récupérer toutes les lignes de la table inscris + les lignes de la table cheveux seulement les n_inscr sont égaux.
base de donnée
Code:
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
|
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
CREATE DATABASE `exmple` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `exmple`;
CREATE TABLE `cheveux` (
`n_inscr` int(11) NOT NULL,
`n_chev` int(11) NOT NULL auto_increment,
`cheveux` varchar(250) NOT NULL,
PRIMARY KEY (`n_chev`),
KEY `n_inscr` (`n_inscr`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
INSERT INTO `cheveux` (`n_inscr`, `n_chev`, `cheveux`) VALUES
(1, 1, 'Blond'),
(3, 2, 'Chatain');
CREATE TABLE `inscrit` (
`n_inscr` int(11) NOT NULL auto_increment,
`surnom` varchar(250) NOT NULL,
PRIMARY KEY (`n_inscr`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
INSERT INTO `inscrit` (`n_inscr`, `surnom`) VALUES
(1, 'lili_256'),
(2, 'lola_16'),
(3, 'pat_11'),
(4, 'dam_16'); |
Mon but est d'obtenir ce résultat ci-dessous en mysql
Code:
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
|
Array
(
[0] => Array
(
[0] => 1
[1] => lili_256
[2] => Blond
)
[2] => Array
(
[0] => 2
[1] => lola_16
[2] =>
)
[3] => Array
(
[0] => 3
[1] => pat_11
[2] => Chatain
)
[4] => Array
(
[0] => 4
[1] => dam_16
[2] =>
)
) |
j'ai essayé plusieurs méthode sql sans succès.
exemple
Code:
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
|
$sqe=mysql_query("SELECT a.n_inscr,a.surnom,b.cheveux FROM inscrit a, cheveux b WHERE a.n_inscr=b.n_inscr ");
$i=0;
while($rb=mysql_fetch_object($sqe)){
$var[$i][0]=$rb->n_inscr;
$var[$i][1]=$rb->surnom;
$var[$i][2]=$rb->cheveux;
$i++;
}
//resultat
//Array
//(
// [0] => Array
// (
// [0] => 1
// [1] => lili_256
// [2] => Blond
// )
//
// [1] => Array
// (
// [0] => 3
// [1] => pat_11
// [2] => Chatain
// )
//
//) |
Comment faire ?