Bonjour
J'aimerais faire un test d'existence via une jointure. Cependant je ne souhaite pas avoir plusieurs ligne retournées comme le fait la jointure. Un exemple pour que ce soit plus parlant :-)
J'ai fait 2 tables. Maison et Habitant. Habitant est relié à Maison par une clef étrangère.
1 2 3 4 5 6 7 8 9 10 11 12 13
| CREATE TABLE `maison` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM ;
CREATE TABLE `habitant` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`maison_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `maison_id` (`maison_id`)
) ENGINE=MyISAM; |
J'aimerais sélectionné toutes les maisons qui ont des habitants:
SELECT maison.* FROM maison INNER JOIN habitant ON habitant.maison_id = maison.id
Ceci est un exemple simplifié. Dans mon cas j'ai plusieurs millions d'enregistrements. Une requête mal conçu poserait de gros problèmes.
Une idée ? :-)
Partager