Select Abfrage

Enigma228

Benutzer
Beiträge
7
Hallo Leute,

Ich erstelle gerade eine Homepage nur mit Mysql stehe ich ein wenig auf Kriegsfuss..
und ich hoffe ihr könnt mir helfen.

Ich habe 3 Tabellen namens personal(kategorie_id, user1_id, user2_id, user3_id), kategorie(id und name) und user(id, name, vorname).
In der Tabelle personal werden die beiden kategorien zusammengefasst und zwar in der Form:

kategorie_id, user1_id, user2_id, user3_id

Wie kann ich eine select anfrage gestalten, so dass ich sie auch in dieser Form erhalte??
zb.
kategorie1, klaus klausen, peter hansen, heinrich halte
kategorie2, bernhard busse, bianca busse, ralf zwetschge

Die Reihenfolge der Namen ist wichtig!! (Der erste ist Vorsitz, der zweite ist der 1. Stellvertreter usw.)

Vielen Dank schonmal
Thomas
 
Werbung:

akretschmer

Datenbank-Guru
Beiträge
9.028
Hallo Leute,

Ich erstelle gerade eine Homepage nur mit Mysql stehe ich ein wenig auf Kriegsfuss..

Ich auch.

und ich hoffe ihr könnt mir helfen.

Ich habe 3 Tabellen namens personal(kategorie_id, user1_id, user2_id, user3_id), kategorie(id und name) und user(id, name, vorname).
In der Tabelle personal werden die beiden kategorien zusammengefasst und zwar in der Form:

kategorie_id, user1_id, user2_id, user3_id

Wie kann ich eine select anfrage gestalten, so dass ich sie auch in dieser Form erhalte??
zb.
kategorie1, klaus klausen, peter hansen, heinrich halte
kategorie2, bernhard busse, bianca busse, ralf zwetschge

Die Reihenfolge der Namen ist wichtig!! (Der erste ist Vorsitz, der zweite ist der 1. Stellvertreter usw.)

Vielen Dank schonmal
Thomas


Mit passenden JOIN's, Was hast Du denn schon so versucht? Ist einklich voll trivial, aber ich möchte DEINEN Ansatz sehen.

Übrigens skaliert Dein Modell nicht. Wenn Du in einer Kategorie mal 4 Leute hast geht es schon nicht mehr.
 

Enigma228

Benutzer
Beiträge
7
Es wird nie mehr als 3 Leute geben.. ;)

Mein Ansatz, aber damit bekomme ich nur einen user:

SELECT category.name, user.lastname, user.firstname
FROM personal
JOIN category ON category.id = personal.category_id
JOIN user ON user.id = personal.user1_id

aber wie weiter??
 

akretschmer

Datenbank-Guru
Beiträge
9.028
Es wird nie mehr als 3 Leute geben.. ;)

Mein Ansatz, aber damit bekomme ich nur einen user:

SELECT category.name, user.lastname, user.firstname
FROM personal
JOIN category ON category.id = personal.category_id
JOIN user ON user.id = personal.user1_id

aber wie weiter??


Mehrfach JOINen:

Code:
test=*# select * from users;
 id | name
----+-------
  1 | user1
  2 | user2
  3 | user3
(3 rows)

Time: 0,168 ms
test=*# select * from userliste ;
 u1 | u2 | u3
----+----+----
  1 |  2 |  3
  3 |  2 |  1
(2 rows)

Time: 0,153 ms
test=*# select l.*, u1.name, u2.name, u3.name from userliste l left join users u1 on l.u1=u1.id left join users u2 on l.u2=u2.id left join users u3 on l.u3=u3.id;
 u1 | u2 | u3 | name  | name  | name
----+----+----+-------+-------+-------
  1 |  2 |  3 | user1 | user2 | user3
  3 |  2 |  1 | user3 | user2 | user1
(2 rows)
 

Enigma228

Benutzer
Beiträge
7
Vielen Dank..
ich konnte den Ansatz anwenden und so umwandeln, dass ich jetzt alles bekomme, was ich benötige!!!

Nochmal vielen Dank!!!

Gruss
Thomas
 
Werbung:
Oben