Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Select Abfrage

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von Enigma228, 25 Oktober 2013.

  1. Enigma228

    Enigma228 Benutzer

    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
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Ich auch.


    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.
     
  3. Enigma228

    Enigma228 Benutzer

    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??
     
  4. akretschmer

    akretschmer Datenbank-Guru


    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 gefällt das.
  5. Enigma228

    Enigma228 Benutzer

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

    Nochmal vielen Dank!!!

    Gruss
    Thomas
     
  6. akretschmer

    akretschmer Datenbank-Guru

    Das war der Plan ...
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden