1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Hilfe MySQL werte aus zwei verschiedenen Tabellen vergleichen + insert

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von alme3333, 16 Februar 2017.

  1. alme3333

    alme3333 Neuer Benutzer

    Hallo liebe Community,

    habe folgendes Problem bin gerade mit einem Projekt beschäftigt wo ich Netzwerkdaten in meine DB speicher und diese Daten dann mit Java auswerte da es sehr große Datenmengen sind versuche ich auf der DB die wichtigsten Daten in andere Tabellen umzuspeichern und auszuwerten.

    Ich habe eine Tabelle in der alle Daten vorhanden sind nun will ich zum Beispiel dem Port 80 den Namen HTTP zuweisen damit man weiß welches Protokoll gemeint ist leider funktioniert dies nicht wie gewünscht. Diese Information soll aber in einer separaten Tabelle stehen. Um zu wissen welcher Port welchen Namen trägt habe ich ebenfalls eine Tabelle erstellt mit der die Tabelle wo alle Daten vorhanden sind verglichen werden kann.

    Zusätzlich würde ich gerne alle IP Adressen die die gleiche src bzw. dst haben zusammenfassen und in eine andere Tabelle speichern wo der verbrauch zwischen den jeweiligen Verbindungen enthalten sein soll.

    Hier die Fotos auf Google Drive verlinkt.

    [​IMG]
    Hier sieht man die Tabelle mit allen Daten.



    [​IMG]
    Hier sollte die Zuordnung von der Port Nummer zum Port Namen sein.


    [​IMG]
    Hier ist die Tabelle die zum vergleichen da ist damit man weiß welche Port Nummer welchen Namen trägt.


    [​IMG]
    Diese Tabelle soll src und dst beinhalten und deren verbrauch.

    Hier die Fotos die Hochgeladen worden sind falls es funktioniert hat :D

    alle_daten.PNG
    Hier sieht man die Tabelle mit allen Daten .



    Ports.PNG
    Hier ist die Tabelle die zum vergleichen da ist damit man weiß welche Port Nummer welchen Namen trägt.



    port_name.PNG
    Hier sollte die Zuordnung von der Port Nummer zum Port Namen sein.




    src_dst.PNG
    Diese Tabelle soll src und dst beinhalten und deren verbrauch.



    Ich bedanke mich schon im voraus für jede Hilfe bin langsam am verzweifeln.
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Deine Bildchen sind unvollständig. Egal, prinzipiell suchst Du Joins und Aggregationen. Als Demo:

    Code:
    test=# create table ports (port int primary key, name text);
    CREATE TABLE
    test=*# insert into ports values (80, 'https');
    INSERT 0 1
    test=*# insert into ports values (5432, 'postgresql');
    INSERT 0 1
    test=*# create table traffic(src inet, dst inet, dst_port int references ports, bytes int);
    CREATE TABLE
    test=*# insert into traffic values ('10.0.0.22','10.0.0.1',80, 100);
    INSERT 0 1
    test=*# insert into traffic values ('10.0.0.23','10.0.0.1',80, 200);
    INSERT 0 1
    test=*# insert into traffic values ('10.0.0.22','10.0.0.1',5432, 500);
    INSERT 0 1
    test=*# select t.src, t.dst, p.name, sum(t.bytes) from traffic t left join ports p on t.dst_port=p.port group by t.src, t.dst, p.name;
      src  |  dst  |  name  | sum
    -----------+----------+------------+-----
     10.0.0.23 | 10.0.0.1 | https  | 200
     10.0.0.22 | 10.0.0.1 | postgresql | 500
     10.0.0.22 | 10.0.0.1 | https  | 100
    (3 rows)
    
    test=*#
    
    [code]
     
  3. ukulele

    ukulele Datenbank-Guru

    Vereinfacht gesagt braucht deine Port-Tabelle nicht mal IDs, die Portnummer selbst ist vermutlich einmalig und kann für den Join herhalten. Du brauchst aber Aliase für die Tabellen wenn du die Ports mehrfach joinst:
    Code:
    SELECT datentabelle.*,p1.PortName AS SrcPortName,p2.PortName AS DstPortName
    FROM datentabelle
    LEFT JOIN porttabelle p1 ON datentabelle.SrcPort = p1.PortNumber
    LEFT JOIN porttabelle p2 ON datentabelle.DstPort = p2.PortNumber
     
  4. alme3333

    alme3333 Neuer Benutzer

    Bin sehr beeindruckt von der Community hier das ging ja sehr schnell ich danke euch sehr hat wunderbar funktioniert :D

    Könnte mir einer von euch noch erklären was genau ein Left Join macht ?
     
  5. ukulele

    ukulele Datenbank-Guru

  6. alme3333

    alme3333 Neuer Benutzer

Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden