[SGBD] Jointure à l'envers?

Jointure à l'envers? [SGBD] - SQL/NoSQL - Programmation

Marsh Posté le 26-06-2002 à 10:21:43    

Salut j'ai deux tables avec une relations 1,n 1,1
 
 
une table de Depart, une table service
 
 
un Depart à plusieurs Services,
 
 
je voudrais selectionner les Dept qui n'ont pas de service
Cad les depart ou leur numéro n'apparait pas ds la table Service
 
Comment faire?
 
(j'utilise MySQL au cas ou cela apporterait des restrictions?)
Merci


Message édité par AGA le 26-06-2002 à 10:59:20
Reply

Marsh Posté le 26-06-2002 à 10:21:43   

Reply

Marsh Posté le 26-06-2002 à 10:24:19    

A priori je ferais
 
 

Code :
  1. Select distinct(servNum) from serv, dept where servnumdept<>deptnum;

Reply

Marsh Posté le 26-06-2002 à 10:24:49    

Mais c pas bon (normal)


Message édité par AGA le 26-06-2002 à 10:33:13
Reply

Marsh Posté le 26-06-2002 à 11:00:25    

SELECT deptnum FROM depart WHERE deptnum NOT IN (SELECT deptnum FROM service)


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 26-06-2002 à 11:02:07    

Pas de requêtes imbriquées dans mysql :(
 
Ca doit être possible de se débrouiller avec les LEFT JOIN :
 
SELECT Depart.*
FROM Depart
LEFT JOIN Service ON Service.servnumdept = Depart.deptnum
WHERE Service.servnum is NULL


Message édité par mrbebert le 26-06-2002 à 11:04:48
Reply

Marsh Posté le 26-06-2002 à 11:04:20    

Comment contourné ça?
C un triatement expeptionnel pour purger la base
donc peut etre lent

Reply

Marsh Posté le 26-06-2002 à 11:06:16    

euh ... t'as une cardinalité min de 1, et tu dis qu'il y a des depts qui n'ont pas de services ... y a pas un ptit soucis dans ta modélisation par hasard ?  :sarcastic:

Reply

Marsh Posté le 26-06-2002 à 11:15:55    

mrbebert a écrit a écrit :

Ca doit être possible de se débrouiller avec les LEFT JOIN :
 
SELECT Depart.*
FROM Depart
LEFT JOIN Service ON Service.servnumdept = Depart.deptnum
WHERE Service.servnum is NULL




j'y avais pensé, mais j'étais pas sur que les LEFT JOIN soient dispo sous MySQL
 
sinon HappyHarry a raison !! si t'as une dépendance (1,n), comment se fesse que tu n'aies pas toujours de correspondance ??


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 26-06-2002 à 11:27:16    

parceque le modèle theorik est parfait
 
en revanche ds la pratique les données sont obtenus à partir d'un document humain, d'autre part certains services ont des Interfaces (telecom, son router quoi) qui ne repondent pas donc le service est dans la base mais son Interface (ou ses) n'a pas repondu donc elle n'est pas stocké ds la base, des lors ce service pointe vers rien, il ne nous interresse plus
mais pour l'exemple j'ai mis Dept, et Service,
 
 
vous suivez tjs?

Reply

Sujets relatifs:

Leave a Replay

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