14-11-2010, 02:15 AM
Z'êtes des artistes les caïds. Vous voyez pas que vous demandez à sélectionner les lignes où l'identifiant du membre vaut 38, que cette valeur est stockée dans la table Batiments_acquis et que donc la ligne que vous voulez afficher n'est pas concernée ?
La clause LEFT marche très bien. Essayez ça pour voir :
La dernière proposition de niahoo va fonctionner. Le seul truc, c'est que sémantiquement il est mieux venu de ne pas mettre ce genre de conditions dans la clause ON d'une jointure mais il y a des exceptions
La clause LEFT marche très bien. Essayez ça pour voir :
SELECT
`batiments_acquis`.`niveaux`,
`liste_batiments`.`id`,
`liste_batiments`.`nom`,
`liste_batiments`.`description`
FROM `liste_batiments`
INNER JOIN `batiments_acquis`
ON `batiments_acquis`.`id_batiments` = `liste_batiments`.`id`
SELECT
`batiments_acquis`.`niveaux`,
`liste_batiments`.`id`,
`liste_batiments`.`nom`,
`liste_batiments`.`description`
FROM `liste_batiments`
LEFT JOIN `batiments_acquis`
ON `batiments_acquis`.`id_batiments` = `liste_batiments`.`id`
La dernière proposition de niahoo va fonctionner. Le seul truc, c'est que sémantiquement il est mieux venu de ne pas mettre ce genre de conditions dans la clause ON d'une jointure mais il y a des exceptions