Mitarbeiterdatenbank doppelt referenzieren

Mitarbeiterdatenbank doppelt referenzieren

am 20.10.2006 16:20:25 von Sascha Clausen

Hallo Gruppe,

ich hänge gerade an einem kleinen Problem:

Nehmen wir 2 Tabellen an:

Tabelle Mitarbeiter:
ID,Name

Tabelle Projekte
Projektleiter1_ID,Projektleiter2_ID,Name,Zeitraum

Projektleiter1_ID und Projektleiter2_ID enthalten die IDs, welche in der
Tabelle Mitarbeiter stehen.

Jetzt möchte ich mit einer MySQL- Abfrage alle Projekte inkl. den beiden
Leitern ausgeben:

SELECT * FROM Projekte

Jetzt sollen aber nicht die Projektleiter IDs, sondern die Namen dazu
ausgegeben werden.
Wäre es nur ein Projektleiter wäre es mit einem JOIN kein Problem - mit
beiden kriege ich das nicht hin!

Wer kann mir helfen?

Re: Mitarbeiterdatenbank doppelt referenzieren

am 20.10.2006 16:38:52 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)

Re: Mitarbeiterdatenbank doppelt referenzieren

am 20.10.2006 16:45:00 von Claus Reibenstein

Sascha Clausen schrieb:

> Wäre es nur ein Projektleiter wäre es mit einem JOIN kein Problem - mit
> beiden kriege ich das nicht hin!

Stell Dir einfach vor, es wären _zwei_ Tabellen, die beide "Mitarbeiter"
heißen und die Du dann über zwei verschiedene Aliase referenzierst, also
irgend so etwas wie

SELECT a.Name, b.Name from Mitarbeiter a, Mitarbeiter b, Projekte p
where Projektleiter1_ID = a.ID and Projektleiter2_ID = b.ID

Gruß. Claus

Re: Mitarbeiterdatenbank doppelt referenzieren

am 20.10.2006 17:03:05 von Sascha Clausen

Am Fri, 20 Oct 2006 16:45:00 +0200 schrieb Claus Reibenstein:

> Stell Dir einfach vor, es wären _zwei_ Tabellen, die beide "Mitarbeiter"
> heißen und die Du dann über zwei verschiedene Aliase referenzierst, also
> irgend so etwas wie
>
> SELECT a.Name, b.Name from Mitarbeiter a, Mitarbeiter b, Projekte p
> where Projektleiter1_ID = a.ID and Projektleiter2_ID = b.ID
Das habe ich - funktioniert nicht. (Keine Ergebnisse)

Aber danke!

Re: Mitarbeiterdatenbank doppelt referenzieren

am 20.10.2006 17:03:32 von Sascha Clausen

Danke!!

Re: Mitarbeiterdatenbank doppelt referenzieren

am 20.10.2006 21:32:42 von Claus Reibenstein

Sascha Clausen schrieb:

> Am Fri, 20 Oct 2006 16:45:00 +0200 schrieb Claus Reibenstein:
>
>> SELECT a.Name, b.Name from Mitarbeiter a, Mitarbeiter b, Projekte p
>> where Projektleiter1_ID = a.ID and Projektleiter2_ID = b.ID
>
> Das habe ich - funktioniert nicht. (Keine Ergebnisse)

Dann gibt es entweder keine passenden Einträge, oder Du hast irgendetwas
falsch gemacht. Bei mir funktioniert es jedenfalls genau so.

Gruß. Claus

Re: Mitarbeiterdatenbank doppelt referenzieren

am 20.10.2006 22:31:03 von dnoeth

Claus Reibenstein wrote:

>>> SELECT a.Name, b.Name from Mitarbeiter a, Mitarbeiter b, Projekte p
>>> where Projektleiter1_ID = a.ID and Projektleiter2_ID = b.ID
>> Das habe ich - funktioniert nicht. (Keine Ergebnisse)
>
> Dann gibt es entweder keine passenden Einträge, oder Du hast irgendetwas
> falsch gemacht. Bei mir funktioniert es jedenfalls genau so.

Wahrscheinlich gibt es in einer der Projektleiter IDs einen ungültigen
Wert oder eine NULL.
Das wäre dann ja mal ein guter Grund für Outer Joins...

Dieter

Re: Mitarbeiterdatenbank doppelt referenzieren

am 21.10.2006 08:57:56 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)