Verbinden von zwei Tabellen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Verbinden von zwei Tabellen

    Hallo,
    vielleicht kann mir jemand bei folgendem Problem helfen:

    es bestehen zwei Tabellen; Tabelle1 und Tabelle2, die Tabelle 1
    enthält unter unter anderem 2 Spalten Schlüssel1 und Schlüssel2.
    Die Tabelle 2 enthält eine Spalte Schlüssel.

    Es sollen jetzt beide Spalten der Tabelle1 Schlüssel1 und Schlüssel2
    mit der Tabelle2 verknüpft werden, wobei gilt Schlüssel1 = Schlüssel,
    wenn nicht dann Schlüssel2 = Schlüssel.


    select * from tabelle1, tabelle2 where schlüssel1=schlüssel kein Problem

    Mit 2 Abfragen und diese dann mit insert into ignore verbinden kein Problem,

    aber kann die Abfrage in einem MySQL-String gestalten werden?

    Hat jemand vielleiht eine Idee?

    fribu

  • #2
    select * from tabelle1, tabelle2 where schlüssel1=schlüssel or schlüssel2=schlüssel

    ... ??
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      Danke, hab ich schon probiert, führt nur nur einem Ergebnis wenn beide Schlüssel in der Tabelle 2 vorhanden ist.

      Die Schlüssel1 und Schlüssel2 sind aber oft unterschiedlich und nur einer der beiden ist in der Tabelle2 enthalten ???

      Kommentar


      • #4
        Dann hast Du aber eine komische Datenbank!
        carpe noctem

        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

        Kommentar


        • #5
          versuch mal
          Code:
          SELECT * 
          FROM tabelle1
          LEFT JOIN tabelle2 ON
             (  tabelle1.schlüssel1=tabelle2.schlüssel 
                OR
                tabelle1.schlüssel2=tabelle2.schlüssel
             )
          TBT

          Die zwei wichtigsten Regeln für eine berufliche Karriere:
          1. Verrate niemals alles was du weißt!


          PHP 2 AllPatrizier II Browsergame

          Kommentar


          • #6
            Hallo

            select * from tabelle1, tabelle2 where schlüssel1=schlüssel or schlüssel2=schlüssel

            habe ich heute getestet, tut auch, aber die Zeilen in denen Schlüssel1 und Schlüssel2 zutreffen werden zweimal dargestellt. Ich benötige die Ausgabe nur einmal. group by ist bereits ist bereits für eine andere Spalte verwendet. Ich werde mal den Join - Vorschlag testen.

            mfg fribu

            Kommentar


            • #7
              Die Abfrage mit Join hat auch funktioniert, wenn der Schlüssel1 und Schlüssel2 zutrifft werden zwei Zeilen ausgegeben. Gibt es eine Möglichkeit, das immer nur eine Zeile zurückgegeben wird?

              Kommentar


              • #8
                SELECT DISTINCT ...
                carpe noctem

                [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                Kommentar


                • #9
                  Einstweilen Danke,
                  am Montag werde ich es sofort testen.

                  Fribu

                  Kommentar


                  • #10
                    Schade, Select distinct hat nicht funktioniert. Auch ist mir aufgefallen, das die Abfragen wesentlich längern dauern als wenn ich
                    create file test type=heap select * ... verwende, dann einen Primary Key und dann ein weiteres insert into verwende: Zwei Abfragen einmal mit Schlüssel1 und dann mit Schlüssel2 und diese dann verbinde mit insert into.

                    gruß fribu

                    Kommentar

                    Lädt...
                    X