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

Zwei Tabellen zusammenfügen

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von birdhouse, 17 Juli 2012.

  1. birdhouse

    birdhouse Neuer Benutzer

    Hallo, dies ist mein erster Beitrag, und ich starte gleich mit einer Frage. Ich hoffe Ihr verzeiht mir das und könnt mir helfen.
    Folgendes Problem:

    Ich habe eine Datenbank mit zwei Tabellen. In der einen ist eine Artikelnummer und die dazugehörige Zeichnungsnummer hinterlegt. In der anderen Tabelle ist die Zeichnungsnummer mit allen weiteren Infos wie Erstelldatum usw. hinterlegt.

    Nun muss ich die beiden Tabellen zusammenführen, um eine Verbindung zwischen den Artikelnummern und Zeichnungsnummern zu bekommen.
    Per InnerJoin ja eigentlich kein Problem, doch nicht alle Zeichnungsnummern haben Artikelnummern.
    Also gibt es für manche Datensätze aus der Zeichnungstabelle keinen passenden Eintrag in der Artikeltabelle.

    Dann habe ich es per left join probiert:
    SELECT z.*, a.Artikelnummer
    FROM
    zeichnungen z
    LEFT JOIN
    artikelnummern a ON (z.Zeichnungsnummer = a.Zeichnungsnummer_Art)
    WHERE z.Zeichnungsnummer LIKE '%".$search."%' or a.Artikelnummer LIKE '%".$search."%'
    LIMIT 0,10;

    (Die Variablen sind von php gesetzt)
    Das geht auch soweit, nur dauert hier eine Abfrage rund 280 Sekunden.

    Habt ihr eine Idee wie ich das anders lösen kann, sodass das ganze ein wenig schneller wird.
    Auch über andere Lösungsansetze bin ich sehr dankbar.

    Vielen Dank schon mal & Gruß,
    birdhouse
     
  2. ukulele

    ukulele Datenbank-Guru

    Eventuell wird es schneller wenn die Spalten Artikelnr und Zeichnungsnr nur numerisch sind, das dürfte aber nicht viel bringen. Die Abfrage bietet aus meiner Sicht kein Optimierungspotenzial.

    Haben deine Tabellen einen Index auf Artikelnr und einen auf Zeichnungsnr? Oder gibt es noch gar keinen Index?
     
  3. birdhouse

    birdhouse Neuer Benutzer

    Beide Tabellen haben bereits ein Index. Das hat allerdings auch nicht viel gebracht

    Danke aber trotzdem schonmal
     
  4. ukulele

    ukulele Datenbank-Guru

    Auf welche Spalten geht denn der Index? Man kann ja mehrere pro Tabelle anlegen, ich glaube auch in MySQL. Was anderes fällt mir nicht ein.
     
  5. birdhouse

    birdhouse Neuer Benutzer

    Der Index steht in der Tabelle Zeichnungen auf z.Zeichnungsnummer und in der Tabelle artikelnummern auf a.Artikelnummer und a.Zeichnungsnummer
     
  6. ukulele

    ukulele Datenbank-Guru

    Dann kann ich kein Problem erkennen, weder beim Index noch in der Syntax. Vieleicht ist dein Server lahm, vieleicht ist auch irgendwas anderes im argen, ich hab leider keine Idee.
     
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