Bonjour,
Je ne suis pas sûr que mon titre soit très explicite mais voici mon problème :
2 tables
- client (id, nom, prenom)
- client_info (id_client, adresse, ville...)
(Il s'agit d'un exemple simplifiant la situation réelle)
Le but est de faire une recherche sur ces deux tables, du type :
1 2 3
| SELECT * FROM client, client_info
WHERE client.id = client_info.client_id
AND (nom LIKE "%motclés%" OR adresse LIKE "%motclés%") |
Jusque là rien de sorcier, mon problème interviens lorsque il n'existe pas d'enregistrement dans "client_info" correspondant à un enregistrement "client", la liaison
client.id = client_info.client_id
n'est plus respecté et même si il existe un client dont le nom correspond aux mots clés, l'enregistrement ne ressortira pas.
Ma question est donc la suivante :
Est-il possible de rendre optionnel la prise en compte de la liaison ?
J'ai essayé :
1 2 3 4 5 6 7 8
| SELECT * FROM client, client_info
WHERE (
client.id = client_info.client_id OR
NOT EXISTS(
SELECT client_id FROM client_info WHERE client_info.id = client.id
)
)
AND (nom LIKE "%motclés%" OR adresse LIKE "%motclés%") |
Mais sans résultats.
Merci pour votre aide.
Thomas
Partager