[Résolu] Rech. enregistr. sans corresp. dans table liée

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
Avatar de l’utilisateur
yves30
Membre hOOnoraire
Membre hOOnoraire
Messages : 192
Inscription : 18 nov. 2006 18:43
Localisation : France - Nîmes (Gard)

[Résolu] Rech. enregistr. sans corresp. dans table liée

Message par yves30 »

Bonjour.

J'aimerais savoir s'il est possible de lister les enregistrements d'une table n'ayant aucun correspondant dans une autre table liée. Je m'explique à l'aide d'un exemple.

Soit une base de données contenant deux tables. La première table (table 1, ou TableVille) ne contient qu'un seul champ : NomVille (clé primaire). La deuxième table (table N ou TableClient) contient deux champs : NomVille, plus un champ NomClient (clé primaire). Je crée la relation 1/N (avec cascade) au moyen du champ NomVille, commun aux deux tables.

Ma question est la suivante. Est-il possible d'obtenir la liste des enregistrements de la table 1 ne possédant aucun correspondant dans la table N ? Autrement dit, comment faire pour produire la liste des villes dans lesquelles n'habite aucun client ?

J'ai essayé à plusieurs reprises de créer un requête (en réglant le champ NomClient sur "is empty"), mais ça ne marche pas... C'est probablement pas la bonne méthode.

Merci d'avance pour votre aide.
Dernière modification par yves30 le 08 oct. 2008 08:01, modifié 2 fois.
LibreOffice 7.6.5 Officielle, Mint 21.3 XFCE, PC Bureau Pentium dualcore G4400, 64 bits, 8 Go
leo42
NéOOphyte
NéOOphyte
Messages : 62
Inscription : 18 sept. 2008 17:00

Re: Recherche enregistrem. sans correspondant dans table liée

Message par leo42 »

bonjour

je pense comprendre ce que tu veux faire mais pour bien faire il serait bien de mettre a dispo une table pour l'exemple

pour savoir les villes ou il n'y a pas d'habitant je pense que le mieux serais de faire une requête regroupement pour compter les personne dans chaque ville et de faire un filtre sur les villes sans habitant

je pense que ce doit etre ca que tu veux faire

par contre si tu as une table sous la main je veux bien te faire un exemple

bonne journée
openoffice 2.4.1 ; windows xp
openoffice 2.3 linux (ubuntu)
Avatar de l’utilisateur
yves30
Membre hOOnoraire
Membre hOOnoraire
Messages : 192
Inscription : 18 nov. 2006 18:43
Localisation : France - Nîmes (Gard)

Re: Recherche enregistrem. sans correspondant dans table liée

Message par yves30 »

Bonjour Leo42, et merci pour l'aide que tu proposes.

Je mets un exemple (très simple) en ligne. Dans cette base (VilleClient), je souhaite donc faire apparaître les villes ne possédant aucun client, à savoir : Lille, Lyon et Toulouse.

Amicales salutations.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.6.5 Officielle, Mint 21.3 XFCE, PC Bureau Pentium dualcore G4400, 64 bits, 8 Go
leo42
NéOOphyte
NéOOphyte
Messages : 62
Inscription : 18 sept. 2008 17:00

Re: Recherche enregistrem. sans correspondant dans table liée

Message par leo42 »

bonjour

voici une solution qui je pense te conviendra

j'avoue que j'ai mis 5 min a comprendre pourquoi une simple requête avec regroupement ne fonctionnais pas

et puis je me mon voisin a du entendre un :" MAIS TU EST VRAIMENT C..............." :P

car c'était simplement les propriétés de la jointure qu'il fallait changer

il faut donc la passé jointure en jointure a droite

et voila ca marche lol
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
openoffice 2.4.1 ; windows xp
openoffice 2.3 linux (ubuntu)
Avatar de l’utilisateur
yves30
Membre hOOnoraire
Membre hOOnoraire
Messages : 192
Inscription : 18 nov. 2006 18:43
Localisation : France - Nîmes (Gard)

Re: Recherche enregistrem. sans correspondant dans table liée

Message par yves30 »

Merci pour ton aide.
Je vais étudier cela de plus près...
Amicalement.
LibreOffice 7.6.5 Officielle, Mint 21.3 XFCE, PC Bureau Pentium dualcore G4400, 64 bits, 8 Go
Avatar de l’utilisateur
yves30
Membre hOOnoraire
Membre hOOnoraire
Messages : 192
Inscription : 18 nov. 2006 18:43
Localisation : France - Nîmes (Gard)

Re: Recherche enregistrem. sans correspondant dans table liée

Message par yves30 »

Bonjour Leo42,

Ce simple petit mot pour te confirmer que ta solution fonctionne à merveille. Je l'ai essayée dans plusieurs bases, et c'est très pratique. En fait j'ignorais totalement que l'on pouvait modifier la jointure des tables ou des requêtes affichées au sein d'une requête... Il faudra que je creuse la question.

Quoi qu'il en soit, encore une fois, merci pour ton aide.

Bien amicalement.
Dernière modification par yves30 le 10 oct. 2008 20:26, modifié 1 fois.
LibreOffice 7.6.5 Officielle, Mint 21.3 XFCE, PC Bureau Pentium dualcore G4400, 64 bits, 8 Go
Pierre-Yves Samyn
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 11276
Inscription : 02 mai 2006 08:42

Re: Recherche enregistrem. sans correspondant dans table liée

Message par Pierre-Yves Samyn »

Bonjour
yves30 a écrit :je souhaite donc faire apparaître les villes ne possédant aucun client, à savoir : Lille, Lyon et Toulouse.
Dans ce cas je procèderais plutôt ainsi :
Capture-1.png
Cette solution, uniquement fondée sur la jointure, présente l'avantage de ne pas passer par les étapes de regroupement et comptage, nécessairement gourmandes en ressources...
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Avatar de l’utilisateur
yves30
Membre hOOnoraire
Membre hOOnoraire
Messages : 192
Inscription : 18 nov. 2006 18:43
Localisation : France - Nîmes (Gard)

Re: [Résolu] Rech. enregistr. sans corresp. dans table liée

Message par yves30 »

Merci pour cette info supplémentaire, Pierre-Yves. Je vais l'étudier aussi.

Cordialement
LibreOffice 7.6.5 Officielle, Mint 21.3 XFCE, PC Bureau Pentium dualcore G4400, 64 bits, 8 Go