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

MySQLi Werte aus Tabellen auslesen

Dieses Thema im Forum "Relationale Datenbanksysteme" wurde erstellt von DerKleene1, 14. Februar 2018 um 14:08 Uhr.

  1. DerKleene1

    DerKleene1 Mitglied

    Hallo,

    ich habe folgendes Problem:
    Ich habe 2 Tabellen.
    Tabelle 1 (original)
    tab_original.png
    Tabelle 2 (user)
    tab_user.png

    Ich möchte nun gerne alle Werte aus Tabelle 1 darstellen lassen, was ja kein Problem ist.
    Nun kann aber z.B. ein User die Werte überschreiben. Diese werden dann in Tabelle 2 gespeichert, damit ich die originalen beibehalten kann.
    Gleicher variablenname aber anderer variableninhalt.
    Wie kann ich nun alle Werte aus Tabelle 1 auslesen, und wenn ein User nun die Variable ändert, das mir dieser Inhalt aus Tabelle 2 angezeigt wird.
    Das oben genannte Beispiel sollte als Ergebnis liefern:
    g_hostname - 192.168.1.3
    g_db_type - mysqli
    g_database_name - test2
    g_db_username - root

    Ich habe es so versucht, aber dann bekomme ich nicht den variableninhalt von Tabelle 1 mit ausgegeben, sondern dieser bleibt leer.

    Code (SQL):
    1. SELECT
    2.             o.variablenname,
    3.             g.variableninhalt
    4.         FROM
    5.             original o
    6.         LEFT JOIN
    7.             geaendert g
    8.         ON
    9.             o.variablenname = g.variablenname
    10.      
    11.         UNION
    12.      
    13.             SELECT
    14.                 o.variablenname,
    15.                 g.variableninhalt
    16.             FROM
    17.                 original o
    18.             RIGHT JOIN
    19.                 geaendert g
    20.             ON
    21.                 o.variablenname = g.variablenname
    22.          
    23.         WHERE o.variableninhalt IS NULL
    Über eine Hilfe würde ich mich sehr freuen, und ich hoffe ihr versteht was ich meine.

    Vielen Dank.
     
  2. Yaslaw

    Yaslaw n/a Moderator

    Viel Einfacher. LEFT JOIN und IFNULL()
    Mein Beispiel für dich: http://sqlfiddle.com/#!9/1368f7/1
    Code (SQL):
    1. SELECT
    2.   ifnull(u.v_name, o.v_name) AS v_name,
    3.   ifnull(u.v_value, o.v_value) AS v_value
    4. FROM
    5.   t_orig o
    6.   LEFT JOIN t_user u
    7.   ON o.v_name = u.v_Name
     
    DerKleene1 gefällt das.
  3. DerKleene1

    DerKleene1 Mitglied

    Hallo,

    vielen Dank für Deine schnelle Hilfe.
    Hast mir sehr geholfen. Funktioniert wunderbar.
    Und ich habe mir einen Ast abgebrochen.
     
Die Seite wird geladen...