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.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ? :-)