[sql] le WHERE not exists

le WHERE not exists [sql] - Programmation

Marsh Posté le 10-01-2002 à 17:51:22    

je ne comprends pas bien le sens de cette syntaxe, on ne peut pas tjs faire avec not in ?
 
help :(


---------------
blog dessins + srtCleaner | Ricoh R6 | K20d | MK-wii 5112-3549-9484 | en phase de déblablatisation depuis le 26 avril 2002 | Belgian Connection
Reply

Marsh Posté le 10-01-2002 à 17:51:22   

Reply

Marsh Posté le 10-01-2002 à 18:05:37    

si, j'crois que tt ce qu'on peut faire avec l'un, on peut le faire avec l'autre. après ça dépend des gouts !

Reply

Marsh Posté le 10-01-2002 à 18:09:26    

l'utilisation est à peu près la même mais le where not exists est plus performant que le not in


---------------
Je ne suis ni pour, ni contre, bien au contraire  
Reply

Marsh Posté le 10-01-2002 à 18:10:27    

ok,  :jap: et c'est quoi les associations qu'on ne peut pas faire?
ceci, c'est correct, syntaxiquement?

Code :
  1. SELECT distinct NP from PUF
  2.     WHERE NP IN(
  3.       SELECT distinct NP from PUF, U
  4.          WHERE ville=Londres AND PuF.NU=U.NU
  5.      HAVING count(*)  = (SELECT count(*) FROM U where ville=Londres)  )  )


 
grrr il me bousille malgré code

 

[edtdd]--Message édité par sisicaivrai--[/edtdd]

Reply

Marsh Posté le 10-01-2002 à 18:26:02    

mais le exists je ne vois pas bien comment il fonctionne
 
SELECT OWNERFIRSTNAME, OWNERLASTNAME
FROM ANTIQUEOWNERS
WHERE EXISTS
 
(SELECT *
FROM ANTIQUES
WHERE ITEM = 'Chair';);
 
ca va faire quoi ca par exemple?

Reply

Marsh Posté le 10-01-2002 à 18:26:07    

tu ne peux pas faire un count(*) quand il ya une jointure, puisque le requeteur ne sait pas sur quel champ de quel table compter.
 
alors que quand tu travailles sur une seule table, par défaut il compte sur la clé primaire
 
remplace le "*" par le champ qu'il faut compter


---------------
Je ne suis ni pour, ni contre, bien au contraire  
Reply

Marsh Posté le 10-01-2002 à 18:28:46    

SELECT distinct NP from PUF
   WHERE NP IN(
     SELECT distinct NP from PUF, U  
        WHERE ville=Londres AND PuF.NU=U.NU
    HAVING count(NP)  = (SELECT count(*) FROM U where ville=Londres)  )  )
 
alors?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed