par
Hubert Roksor » 04 août 2007, 00:38
Bon, ben si tu veux restreindre les conditions de jointure, c'est bien dans la jointure qu'il faut ajouter ta condition supplémentaire. Si tu le mets dans le WHERE, tu ne récupèreras que les enregistrements ayant une correspondance dans les deux tables, comme tu as pu le remarquer.
En arrageant ta première requête,
Code : Tout sélectionner
SELECT t.*, u.*
FROM base1.tbl_1 AS t
LEFT JOIN base.tbl_user AS u ON u.id_us = t.id_p
WHERE t.nom_p LIKE 'd%'
ORDER BY t.nom_p, t.prenom_p
devient
Code : Tout sélectionner
SELECT t.*, u.*
FROM base1.tbl_1 AS t
LEFT JOIN base.tbl_user AS u ON (u.id_us = t.id_p AND u.num_client_us = 1)
WHERE t.nom_p LIKE 'd%'
ORDER BY t.nom_p, t.prenom_p
Bon, ben si tu veux restreindre les conditions de jointure, c'est bien dans la jointure qu'il faut ajouter ta condition supplémentaire. Si tu le mets dans le WHERE, tu ne récupèreras que les enregistrements ayant une correspondance dans les deux tables, comme tu as pu le remarquer.
En arrageant ta première requête,
[code] SELECT t.*, u.*
FROM base1.tbl_1 AS t
LEFT JOIN base.tbl_user AS u ON u.id_us = t.id_p
WHERE t.nom_p LIKE 'd%'
ORDER BY t.nom_p, t.prenom_p[/code]
devient
[code] SELECT t.*, u.*
FROM base1.tbl_1 AS t
LEFT JOIN base.tbl_user AS u ON (u.id_us = t.id_p AND u.num_client_us = 1)
WHERE t.nom_p LIKE 'd%'
ORDER BY t.nom_p, t.prenom_p[/code]