Announcement

Collapse
No announcement yet.

Abfrageproblem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Abfrageproblem

    Hallo zusammen,
    ich habe gerade ein Problem, bei dem ich ein wenig auf dem Schlauch stehe und mir keine rechte Lösung einfallen will. Ich weiß auch nicht recht, wie ich das Problem nennen soll, dashalb der leider wenig aussagekräftige Titel

    Im Prinzip geht es um folgendes: Ich habe zwei Tabellen. In der ersten Tabelle wähle ich einen Datensatz aus, also z.B.

    Code:
    +-------+------------------------------------------------------------+
    | ID      | Daten                                                                 |
    +-------+------------------------------------------------------------+
    | 1       | Alpha                                                                  |
    |          | Beta                                                                    |
    |          | Gamma                                                               |
    +-------+------------------------------------------------------------+
    Dabei sind die einzelnen Begriffe im Feld "Daten" durch einen Zeilenumbruch getrennt.

    Nun möchte ich aber ein einer zweiten Tabelle alle Datensätze auswählen, die nur Begriffe aus dem Datensatz aus Tabelle 1 enthalten. Wenn die 2. Tabelle also so aussähe:
    Code:
    +-------+------------------------------------------------------------+
    | ID      | Daten                                                                 |
    +-------+------------------------------------------------------------+
    | 1       | Alpha                                                                  |
    |          | Beta                                                                    |
    +-------+------------------------------------------------------------+
    | 2       | Gamma                                                               |
    |          | Alpha                                                                  |
    +-------+------------------------------------------------------------+
    | 3       | Beta                                                                    |
    |          | Delta                                                                   |
    +-------+------------------------------------------------------------+
    Dann möchte ich über die SELECT nur die IDs 1 und 2 anwählen, nicht aber ID 3, weil Delta ja nicht im Datensatz der 1. Tabelle enthalten ist.

    Natürlich könnte man auch für jeden Begriff im Feld Daten eine eigene Spalte anlegen und dann über WHERE IN() abfragen, allerdings fände ich diese Lösung doch recht unschön, weil die Anzahl der Begriffe im Feld "Daten" in beiden Tabellen doch recht unterschiedlich sein könnte und ich diese weder limitieren noch eine Tabelle mit extrem vielen Spalten haben möchte.

    Daher muss es hierfür doch auch eine elegante Lösung geben, oder? Ich hoffe Ihr könnt mir helfen

    Vielen Dank im Voraus
    Tim

    EDIT: Nach langem Probieren habe ich das Problem jetzt gelöst, indem ich die Tabellen in je zwei Tabelle aufgeteilt habe. Damit wird es unnötig mehrere Daten in einem Feld zu speichern. Den Anstoß hat mir folgender Satz in einem englischsprachigen Forum gegeben: one column in one row should contain just one value. Trotzdem vielen Dank an alle, die den Thread gelesen haben!
    Zuletzt editiert von timm; 19.07.2011, 00:52. Reason: Problemlösung gefunden
Working...
X