Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] SQL-Abfrage, suche nach einem bestimmten Teil des Zelleninhalts

Einklappen

Neue Werbung 2019

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

  • [Erledigt] SQL-Abfrage, suche nach einem bestimmten Teil des Zelleninhalts

    Und nochmal ein Problem... (naja, wenn ich das erledigt habe, funktioniert hoffentlich endlich alles ^^)

    In meiner Serien-Übersicht habe ich zu jeder Serie einen oder mehrere Autoren eingetragen.
    Jeder Person ist eine ID zugeordnet und sie befinden sich pro Serie alle in der gleichen Tabellen-Zelle.

    Beispiel:

    Serie 1: "23-4-67"
    Serie 2: "2-23"
    Serie 3: "4"

    Ich habe es hinbekommen, dass auf der Übersichtsseite der Serie alle Namen
    mit Link zur jeweiligen Profil-Seite ausgelesen werden ( mit explode("-") ).

    Allerdings habe ich nun umgekehrt dasselbe Problem, da ich auf der Profil-Seite jedes Autors
    eine Liste aller Werke haben will, an denen er mitgearbeitet hat.

    Mein Problem ist, dass einerseits mehrere IDs in einer Zelle stehen
    (mit "-" getrennt, am Anfang oder Ende ist aber kein Strich),
    außerdem darf, wenn ich alle Werke von z.B. dem Autor mit der ID "4" suche,
    nicht auch die von ID "40" etc ausgespuckt werden.

    Wie muss ich meine SQL-Abfrage formulieren?


  • #2
    ich würde erstmal die Tabellen normalisieren, damit wirst Du auf dauer besser leben.

    Kommentar


    • #3
      Zitat von Teela Beitrag anzeigen
      Mein Problem ist, dass einerseits mehrere IDs in einer Zelle stehen
      Sehr richtig erkannt. Für so etwas stellt SQL keine Funktionen bereit.

      Tabelle serien: serie_id, serie_name
      1, Serie 1
      2, Serie 2
      3, Serie 3

      Tabelle autoren: autor_id, autor_name
      2,Autor A
      5,Autor B
      23,Autor C
      67,Autor D

      Tabelle serien_autoren: id_serienautor, serie_id, autor_id
      1,1,23
      2,1,4
      3,1,67
      4,2,2
      5,2,23
      6,3,4

      Und dann brauchst Du nur noch das passende JOIN für die Abfrage.

      Kommentar


      • #4
        Zitat von David Beitrag anzeigen
        Sehr richtig erkannt. Für so etwas stellt SQL keine Funktionen bereit.

        Tabelle serien: serie_id, serie_name
        1, Serie 1
        2, Serie 2
        3, Serie 3

        Tabelle autoren: autor_id, autor_name
        2,Autor A
        5,Autor B
        23,Autor C
        67,Autor D

        Tabelle serien_autoren: id_serienautor, serie_id, autor_id
        1,1,23
        2,1,4
        3,1,67
        4,2,2
        5,2,23
        6,3,4

        Und dann brauchst Du nur noch das passende JOIN für die Abfrage.
        Hab jetzt die Tabellen und Ausgabescripte umgeschrieben.
        (Ein Glück, dass das noch nicht so viel war xD)

        Die Abfrage habe ich nach einigem hin und her auch hinbekommen,
        folglich funktioniert jetzt alles ^^

        Vielen Dank jedenfalls, auch für den Link, das war mir eine große Hilfe. ^^

        Kommentar

        Lädt...
        X