PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 07/12/2015 12:26:01

psql_junior
Membre

Jointures

Bonjour,

Etant encore jeune novice en base de données, je viens vers vous pour un problème que je rencontre.
Dans le cadre d'une analyse de logs, je dispose d'une table dans laquelle avec les colonnes suivantes:

Hits | IP src | IP dst | Port dst | Appli | IP Protocol |
-----+-------+--------+---------+-------+-------------+

Hits correspond aux doublons
IP src et dst sont les IP sources et destinations
Port dst le port de destination
Application l'application utilisée
Et IP protocol, le protocole IP de l'application.

Je souhaite intégrer une sorte de "résolution DNS" en utilisant une autre table à côté pour contenant les colonnes suivantes:

IP address | Hostname |
-------------+------------+

Contenant environs 3500 hostnames qui peuvent être aussi bien des IP sources que destinations.

Je voyais le résultat de la manière suivantes si les adresses sources ou dest correspondent pour la première table

Hits | IP src | Host src | IP dst | Host dst | Port dst | Appli | IP Protocol |
-----+-------+----------+-------+----------+----------+------+--------------+

Les possibilités sont que les deux IP peuvent être résolues ou juste une des deux grâce à la 2ème table.

Donc dans un premier temps est ce possible ? Si non peut être avoir une piste dans ce sens la car pour l'heure j'avoue être un peu largé..

Si je n'ai pas été assez clair, n'hésitez pas je renseignais les infos manquantes et je vous remercie de l'attention que vous porterez à mon post.

Bonne journée à vous

Hors ligne

#2 07/12/2015 13:18:49

arthurr
Membre

Re : Jointures

Bonjour,
si je comprends bien, tu vas avoir des infos dans ta table des résolutions dns mais pas tout le temps ? et tu as besoin d'une double jointure.
si c'est ça, ill faut faire 2 left join =>

select log.*,src.hostname,dest.hostname from table_log log left join table_dns src on(src.ip = log.ip_src) left join table_dns dest on(dest.ip = log.ip_dest)

Dernière modification par arthurr (07/12/2015 13:21:19)

Hors ligne

#3 07/12/2015 13:32:46

psql_junior
Membre

Re : Jointures

Merci de ta réponse.

Les IP de la table dns peuvent correspondre pour les sources et destinations de la table log et des fois non. Maintenant à voir aussi si source et destination correspondent à chaque fois ou juste une sur les deux.

Je sais pas si ça t'éclaires plus?

Hors ligne

#4 07/12/2015 14:58:48

arthurr
Membre

Re : Jointures

c'est clair pour moi. et donc mon exemple de requête correspond à ton besoin.

Hors ligne

#5 07/12/2015 15:19:05

psql_junior
Membre

Re : Jointures

D'accord je te remercie, je vais faire mes tests au pire des cas je reviens vers toi si quelque chose m'échappe encore.

Merci

Hors ligne

Pied de page des forums