par
jojolapine » 22 oct. 2008, 22:44
Bonjour à tous,
J'ai une jointure qui commence à m'embeter, ça fait une heure que je suis dessus, je vois pas comment prendre la chose...
Tout d'abord la structure des tables:
--
-- Structure de la table `photos`
--
CREATE TABLE IF NOT EXISTS `photos` (
`id_photo` int(10) unsigned NOT NULL auto_increment,
`copyright` varchar(70) NOT NULL,
`id_album_photos` int(10) unsigned NOT NULL,
`nom` varchar(70) NOT NULL,
`url_mini` varchar(150) NOT NULL,
`url_maxi` varchar(150) NOT NULL,
PRIMARY KEY (`id_photo`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=95 ;
--
-- Structure de la table `albums_photos`
--
CREATE TABLE IF NOT EXISTS `albums_photos` (
`id_album_photos` int(10) unsigned NOT NULL auto_increment,
`id_repertoire` int(10) unsigned NOT NULL,
`nom` varchar(70) NOT NULL,
`nom_url` varchar(150) NOT NULL,
`nb_photos` int(11) NOT NULL,
`date_creation` datetime NOT NULL,
PRIMARY KEY (`id_album_photos`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=15 ;
Bon jusque là vous me suivez? donc c'est bien simple, il y a des photos qui appartiennent à des albums, rien de très compliqué!
Bon maintenant, voici ce que j'aimerais faire...
Je veux simplement selectionner les albums dont l'id est égal à X, et faire une jointure sur la table photo pour avoir la première image (ou au moins une image quelconque pour l'instant...)...
donc voici ce que j'ai fait:
Code : Tout sélectionner
SELECT
a.id_album_photos AS id_album_photos, a.nom_url AS nom_url, a.nom AS nom, p.url_mini AS url_mini
FROM
photos AS p, albums_photos AS a
WHERE
a.id_repertoire =5
GROUP BY
a.id_album_photos
ça me renvoi bien les infos au niveau des albums, mais l'url de la photo est la même pour tout les enregistrements (j'en ai que deux, mais bon quand même)...
Donc je sais pas ce qu'il faut faire...?
Une idée? Si besoin d'infos supplémentaires: I'm Here!!
Merci d'avance
Bonjour à tous,
J'ai une jointure qui commence à m'embeter, ça fait une heure que je suis dessus, je vois pas comment prendre la chose...
Tout d'abord la structure des tables:[quote]
--
-- Structure de la table `photos`
--
CREATE TABLE IF NOT EXISTS `photos` (
`id_photo` int(10) unsigned NOT NULL auto_increment,
`copyright` varchar(70) NOT NULL,
`id_album_photos` int(10) unsigned NOT NULL,
`nom` varchar(70) NOT NULL,
`url_mini` varchar(150) NOT NULL,
`url_maxi` varchar(150) NOT NULL,
PRIMARY KEY (`id_photo`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=95 ;
--
-- Structure de la table `albums_photos`
--
CREATE TABLE IF NOT EXISTS `albums_photos` (
`id_album_photos` int(10) unsigned NOT NULL auto_increment,
`id_repertoire` int(10) unsigned NOT NULL,
`nom` varchar(70) NOT NULL,
`nom_url` varchar(150) NOT NULL,
`nb_photos` int(11) NOT NULL,
`date_creation` datetime NOT NULL,
PRIMARY KEY (`id_album_photos`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=15 ;[/quote]
Bon jusque là vous me suivez? donc c'est bien simple, il y a des photos qui appartiennent à des albums, rien de très compliqué!
Bon maintenant, voici ce que j'aimerais faire...
Je veux simplement selectionner les albums dont l'id est égal à X, et faire une jointure sur la table photo pour avoir la première image (ou au moins une image quelconque pour l'instant...)...
donc voici ce que j'ai fait:[code]SELECT
a.id_album_photos AS id_album_photos, a.nom_url AS nom_url, a.nom AS nom, p.url_mini AS url_mini
FROM
photos AS p, albums_photos AS a
WHERE
a.id_repertoire =5
GROUP BY
a.id_album_photos[/code]
ça me renvoi bien les infos au niveau des albums, mais l'url de la photo est la même pour tout les enregistrements (j'en ai que deux, mais bon quand même)...
Donc je sais pas ce qu'il faut faire...?
Une idée? Si besoin d'infos supplémentaires: I'm Here!!
Merci d'avance