Requete produits, photos

Eléphant du PHP | 120 Messages

30 nov. 2007, 13:17

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

ViPHP
ViPHP | 4039 Messages

30 nov. 2007, 13:59

On peut avoir un aperçu de ta table, avec les différents champs ?
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 120 Messages

30 nov. 2007, 14:08

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

Eléphant du PHP | 445 Messages

30 nov. 2007, 14:51

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

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

30 nov. 2007, 15:57

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.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 120 Messages

30 nov. 2007, 17:02

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

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

30 nov. 2007, 17:26

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

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 120 Messages

30 nov. 2007, 17:33

Merci beaucoup, ca marche maintenant je vais décortiquer ce code pour mieux le comprendre

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

30 nov. 2007, 17:43

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

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 120 Messages

30 nov. 2007, 17:47

Merci beaucoup je m'y atelle de ce pas