1

Mais c'est un truc de ouf ça!

Selection des spectateurs qui ont vu tous les films
film(filmid, etc.....)
spectateur(filmid, spectaid, .......)

SELECT * from Spectateur S1 
WHERE NOT EXISTS ( SELECT * from Film F 
                   WHERE NOT EXISTS ( SELECT * from Spectateur S2 
                                      WHERE F.filmid = S2.filmid AND S1.spectaid = S2.spectaid)) 

#tricouic#

on peut pas faire un truc avec count, style
select * from spectateur
where spectaid in (
    select spectaid
    from spectateur
    group by spectaid
    having count(filmd)=select count(*) from film
);

?

quelles sont les différences? vitesse? élégance? optimisation qui me passe à 3km du crâne?

2

Il me semble que c'est pour éviter de se retrouver avec des réponses qui se répètent ou des réponses en trop farfelues...

3

le nombre de requète est différent et à vue de nez le résultat ne sera (comme le dit yoshi) pas le même...
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

4

5

(mmm non rien)

6

Accessoirement, la première requète utilise les indexes. La seconde est (a priori) obligée de se faire un full table scan.
Flemme de regarder si elles sont équivalentes.

7

intéressant, comme différence. Donc la seconde va ramer salement, quoi.

8

Essaie quand même de demander à ton moteur de base de données le plan d'exécution calculé pour vérification wink ^^

9

10

En MySQL ça se fait en préfixant la requête de "EXPLAIN" si je ne me trompe pas. Pour les autres SGBD par contre je sais pas ^^
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

11

MySQL est un SGBD ??
Sous PostgreSQL: EXPLAIN ou EXPLAIN ANALYZE devant la requête.
Sous Oracle, c'est un peu plus complexe car il faut qu'un administrateur te créé la table "plan_table" selon un script fourni avec le SGBD. Ensuite, tu préfixes avec EXPLAIN PLAN ...
Codeur retraité coulant des jours paisibles...

Je raconte ma vie: http://blog.frosties.org/