2 messages in com.mysql.lists.mysql-deRe: Abfrage Join, Help please
FromSent OnAttachments
Vladislav Vorobiev04 Jan 2007 08:13 
Nils Meyer05 Jan 2007 02:47 
Subject:Re: Abfrage Join, Help please
From:Nils Meyer (mey@hauptsache.net)
Date:01/05/2007 02:47:15 AM
List:com.mysql.lists.mysql-de

Hallo Vladislav,

Vladislav Vorobiev wrote:

Damit erreiche ich was was ich moechte, nur fuer einen Fall. Ich brauche aber eigentlich sowas

INNER JOIN Brangen ON (Brangen.id) = (Firmen.brange1 or Firmen.brange2 or Firmen.brange3) (Funktioniert nicht)

Also ich möchte alle Firmen anzeigen die in der Brange1 oder 2 oder3 sind.

Richtiger Ansatz, falsche Syntax.

INNER JOIN Brangen ON (Brangen.id = Firmen.brange1 OR Brangen.id = Firmen.brange2 OR Brangen.id = Firmen.brange3)

Das würde wohl gehen. Ich rate dir dennoch, dein Datenbankdesign zu überdenken und die Tabellen zu normalisieren. Die n:m verknüpfung bildest du am besten über eine weitere Tabelle ab:

| Firmen |

---------------- id

| Brangen | (meintest du eigentlich Branche?)

------------------- | id | bez

| Firma_Brange |

---------------------------- | firma_id | brange_id |

Abfrage dann wie folgt:

SELECT blabla FROM Firmen INNER JOIN Firma_Brange ON Firmen.id = Firma_Brange.firma_id INNER JOIN Brangen ON Brangen.id = Firma_Brange.brange_id WHERE brange_id IN (1, 2, 3)

Wie kann man es mit Joints lösen?

Es empfiehlt sich, bei Datenbankabfragen auf Marihuanakonsum zu verzichten.

Gruß Nils