Sohail: Join

Hi,

ich habe da ein Problem.
Es gibt zwei Tabellen. Eine, wo alle Dateinamen stehen und andere, wo alle Begriffe, die in dieser Dateien vorkommen. Diese zwei sind über die ID miteinander verbunden.

Ich muss jetzt aus der ertsetn Tabelle alle Dateinamen auflisten, wo die z.B zwei Begriffe "Test1" und "Test2" vorkommen. Die Select-Anweisung sieht bei so aus:

Select Buch.Begriff,PNamen.Datei,PNamen.Name From Buch Join PNamen ON Buch.ID=PNamen.ID Where Buch.Begriff Like 'Test1%' AND Buch.Begriff Like 'Test2%' Order by Buch.Begriff,PNamen.Name

Da bekomme ich aber nichts raus, obwohl die einträge da sind. Weiss jemand, was ich da falsch mache.

Danke im voraus.

Sohail

  1. Hallo,

    fuer diese Frage ist es wichtig zu wissen, um was fuer eine Datenbank es sich handelt, da JOIN bei verschiedenen DBs unterschiedlich ist....da gibt es naemlich noch INNER JOIN, LEFT JOIN, etc.....

    Select Buch.Begriff,PNamen.Datei,PNamen.Name From Buch Join PNamen ON Buch.ID=PNamen.ID Where Buch.Begriff Like 'Test1%' AND Buch.Begriff Like 'Test2%' Order by Buch.Begriff,PNamen.Name

    bei Access z.B. so:

    SELECT
    Buch.Begriff,PNamen.Datei,PNamen.Name
    FROM
    (Buch LEFT JOIN PNamen ON Buch.ID=PNamen.ID)
    WHERE
    [...]

    Gruss
    Tobi

  2. Hallo Sohail,

    Where Buch.Begriff Like 'Test1%' AND Buch.Begriff Like 'Test2%'

    Da bekomme ich aber nichts raus, obwohl die einträge da sind.

    Kannst Du auch nicht, da Buch.Begriff nicht gleichzeitig mit "Test1" und mit "Test2" anfangen kann.

    Grüße
    Andreas

  3. Halihallo Sohail

    Select Buch.Begriff,PNamen.Datei,PNamen.Name From Buch Join PNamen ON Buch.ID=PNamen.ID Where Buch.Begriff Like 'Test1%' AND Buch.Begriff Like 'Test2%' Order by Buch.Begriff,PNamen.Name

    Warum es nicht geht, verrät dir Andreas. Lösen kannst du dies über Table-Alias, am besten
    du befragst das Handbuch deiner Datenbank dazu; hier ein Pseudo (Alias sind manchmal
    Dialektabhängig, hierbei z. B. dem von mysql):

    SELECT
          A.*
       FROM
          Tabelle AS A,
          Tabelle AS B
       WHERE
          A.id=B.id AND
          A.Begriff LIKE '...' AND
          B.Begriff LIKE '...'

    Viele Grüsse

    Philipp