SELECT mit 19 Tabellen

  • Hallo, ich brauche für eine Suche mit SELECT ... eine Idee wie es geht wenn ich in einer DB 19 Tabellen habe:


    domains mit den 2 Feldern domain_id und domain
    keywords mit den 2 Feldern keyword_id und keyword
    link_keyword0 mit den 3 Feldern link_id, keyword_id und domain
    ...
    link_keyword16 mit den 3 Feldern link_id, keyword_id und domain
    links mit den 4 Feldern link_id, url, title und description


    In den gleichlautenden Feldnamen sind identische Werte so daß sich entsprechende Abhängigkeiten der Tabellen untereinander sowie der Werte in den Feldern ergeben. Ich möchte nun per SELECT eine Suche über alle Felder einrichten, mit welcher Art Verknüpfung muß ich "arbeiten"? Wahrscheinlich INNER JOIN denke ich. Was kommt an die Stelle der Fragezeichen ???


    Moni


  • Das soltle man sich doch vorher überlegen, wie man eine Datenbank abfragt, wenn man sie plant..
    wozu sind den bitte die 0-16 link_keyword-Tabellen? O.o


    Da ich leider die Abhänigkeiten nicht genau kenne kann ich dir da nichts genaueres zu sagen :/

  • Hab die DB nicht angelegt muß sie aber nutzen. Die 16 Tabellen link_keyword1 ... 16 sind entstanden durch die Umwandlung von keywords in md5 hash. Eigentlich lauteten Sie link_keyword0 ... 9 und link_keyworda ... f. Fing der md5 hash mit 1 an dann wurde das keyword in link_keyword1, fing er mit f an dann wurde es in link_keywordf geschrieben. Die keywords sind Ergebnis einer Websuche mit einem Spider.


    Ich muß nun die Tabelleninhalte auswerten oder daraus eine neue Tabelle machen die ich einfacher abfragen kann.


    Moni

  • Hab da mal ein SELECT, das aber nicht funzt.
    Moni


  • Hast Du das drauf? Hier mal ein Code den mir jemand geschrieben hat und erwähnt hat das JOINS zu langsam sind und UNION wahrscheinlich das richtige sei. Das hab ich doch schonmal gelesen :)
    Moni

    Code
    1. select domain, keyword
    2. from link_keyword[0-9a-f]
    3. join domains on link_keyword[0-9a-f].domain_id = domains.domain_id
    4. join keywords on link_keyword[0-9a-f].keyword_id = keywords.keyword_id
  • So wird es verwendet:

    (Finde gerade nicht dir Richtige WHERE-Clause bei dir? )

  • Also guck mal hier ob Du mir wohl sagen kannst was genau muß hinter SELECT und hinter FROM für einen Code einbauen wenn ich alle 19 Tabellen und alle Spalten abfragen will. So daß auch die Zeit für die Abfrage kurz ist.
    Und wenn ich die WHERE-clause nach Bedarf anpassen will d.h mal WHERE keywords.keyword LIKE '%...%' oder mal WHERE domains.domain LIKE '%...%' usw.



  • Ich habs jetzt so gemacht, aber da kommt nichts. Guck da mal drüber bitte was da nicht stimmt, ehrlich gesagt blick ich nicht mehr durch.


    MONI