Requétes imbriquées et COUNT()

Bonjour à tous,

J’ai deux tables (exemple) :

  • Soirees (id, intitule, date, … )
  • Photos (id, path, id_soiree)

id_soiree etant lié a id de la table “Soirees”

Je veux récupérer toutes les informations contenues dans la table “Soirees” ou il n’y a aucunes photos associées.
J’ai effectué cette requéte :
SELECT * FROM soirees WHERE COUNT(SELECT DISTINCT id FROM photos)=0
Mais je n’ai l’impression qu’on puisse utiliser la fonction COUNT() à cette endroit…

Pouvez-vous m’aider ?
Edité le 18/08/2007 à 18:06

SELECT * FROM Soirees
WHERE id NOT IN (SELECT id_soiree FROM Photos);

ou bien

SELECT * FROM Soirees
LEFT JOIN Photos
ON Soirees.id = Photos.id_soiree
WHERE Photos.id IS NULL

La première requête, j’en suis sûr ; la deuxième, ça doit être ça mais il faut vérifier.

Merci j’ai cherché compliqué alors qui il n’y avait pas raison :slight_smile:

Sinon au passage est-il possible d’utiliser COUNT() dans le contexte ou je voulais le faire ?

Ouaip.

SELECT * FROM soirees WHERE EXISTS (SELECT COUNT(*) AS n DISTINCT id FROM photos HAVING n = 0)

Merci bien :slight_smile: