Page 1 sur 1

Requete produits, photos

Posté : 30 nov. 2007, 13:17
par pascalbm
Bonjour
J'ai 2 tables, une pour les produits et une pour les photos liée aux produits par id_prod.
J'aimerai afficher les produits qui n'ont pas de photos.
Comment puis je faire dans ma requête ?
Merci d'avance pour votre aide en espérant que je sois compréhensible

Posté : 30 nov. 2007, 13:59
par Berzemus
On peut avoir un aperçu de ta table, avec les différents champs ?

Posté : 30 nov. 2007, 14:08
par pascalbm
Voici une partie de la table produits

Code : Tout sélectionner

CREATE TABLE `fvproduits` ( `id_prod` bigint(20) NOT NULL auto_increment, `propar` varchar(15) NOT NULL default '0', `ref_produit` varchar(10) NOT NULL default '', `date_enr` date NOT NULL default '0000-00-00', `type` varchar(15) NOT NULL default '0', `action` varchar(10) NOT NULL default '0', `sup_total` bigint(20) default '0',
et la table des photos

Code : Tout sélectionner

CREATE TABLE `fv_photo` ( `id_photo` bigint(20) NOT NULL auto_increment, `id_prod` bigint(20) NOT NULL default '0', `nom_photo` varchar(50) NOT NULL default '', PRIMARY KEY (`id_photo`) ) ;
Merci d'avance

Posté : 30 nov. 2007, 14:51
par h0_noMan
Essayes ceci :

Code : Tout sélectionner

SELECT fv_photo.* FROM fv_photo LEFT JOIN fvproduits ON fv_photo.id_prod=fvproduits.id_prod WHERE fvproduits.id_prod IS NULL

Posté : 30 nov. 2007, 15:57
par Truc
Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "SQL & Bases de données".

Merci de prendre le temps de lire les règlements
ainsi que l'intitulé de chaque forum avant de poster un nouveau sujet.

Posté : 30 nov. 2007, 17:02
par pascalbm
Je te remeci, mais ca n'a pas marché.
voici la requete de base que j'utilise pour afficher les produits ayant des photos

Code : Tout sélectionner

SELECT fvproduits.id_prod, fvproduits.ref_produit, fvproduits.date_enr, type, fvproduits.`action`, fvproduits.date_dispo, fv_photo.id_photo, fv_photo.id_prod, fv_photo.nom_photo FROM fvproduits, fv_photo WHERE fv_photo.id_prod=fvproduits.id_prod GROUP BY fvproduits.id_prod
J'aimerai créer une requete qui, à l'inverse m'afficherai les produits qui n'ont pas de photos

Merci encore

Posté : 30 nov. 2007, 17:26
par Truc
Utilise une jointure plus "large" avec LEFT

Code : Tout sélectionner

SELECT * FROM fvproduits pr LEFT JOIN fv_photo po USING (id_prod) WHERE id_photo IS NULL

Posté : 30 nov. 2007, 17:33
par pascalbm
Merci beaucoup, ca marche maintenant je vais décortiquer ce code pour mieux le comprendre

Posté : 30 nov. 2007, 17:43
par Truc
Pour "décortiquer" exécute bout par bout

Sans "LEFT"

Code : Tout sélectionner

SELECT * FROM fvproduits pr JOIN fv_photo po USING (id_prod)
Avec "LEFT"

Code : Tout sélectionner

SELECT * FROM fvproduits pr LEFT JOIN fv_photo po USING (id_prod)
Avec "LEFT" & "IS NULL"

Code : Tout sélectionner

SELECT * FROM fvproduits pr LEFT JOIN fv_photo po USING (id_prod) WHERE id_photo IS NULL

Posté : 30 nov. 2007, 17:47
par pascalbm
Merci beaucoup je m'y atelle de ce pas