Requête SQL en danger...

Requête SQL en danger... - PHP - Programmation

Marsh Posté le 09-12-2002 à 18:00:00    

Bonjour,
 
Je me trouve actuellement confronté à un problème que je ne sais pas résoudre.
Pour mon site en php, j'effectue une requête SQL qui, à partir d'un ID utilisateur pris dans une table d'un module, va chercher le nom de l'utilisateur qui correspond dans la table des utilisateurs du site.
ex : "select table_users.name from table_module, table_users where table_module.id = table_users.id"
Bref, jusque là, tout va bien.  :)  
Oui mais...
 
.. mais je vais forcément me retrouver un jour ou l'autre dans le cas où un des utilisateurs renseignés dans le module sera supprimé de ma base utilisateurs.
Pour des contraintes techniques indépendantes de ma bonne volonté manifeste ( ;) ), je ne peux pas effectuer d'intégrité référentielle entre les deux tables (ex : id table_users supprimé  => id table_module supprimé).
 
Donc comment faire pour éviter de faire planter ma requête et donc, toute la fonction de mon module ?
 
Merci d'avance...  :jap:

Reply

Marsh Posté le 09-12-2002 à 18:00:00   

Reply

Marsh Posté le 09-12-2002 à 18:04:16    

Un "left join"

Reply

Marsh Posté le 09-12-2002 à 18:14:06    

ça existe ça avec mysql... ?
oki, je vais essayer.
merci

Reply

Marsh Posté le 09-12-2002 à 18:16:27    

Thocan a écrit :

ça existe ça avec mysql... ?
oki, je vais essayer.
merci


 
Ben au lieu d'utiliser un inner join, en utilisant une jointure à gauche, tu récupèreras le jeu de résultat même si les champs demandés dans la table jointe sont NULL.
 
Par contre, je connais pas la syntaxe sous MySql...

Reply

Marsh Posté le 10-12-2002 à 08:41:02    

SELECT
liste de mes champs
FROM matable principale
LEFT JOIN matable secondaire ON ma condition de left join
WHERE mes conditions


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Sujets relatifs:

Leave a Replay

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