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

Bestimmte Spalten anhand von anderer Tabelle ausgeben

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von Importise, 29 Mai 2016.

  1. Importise

    Importise Neuer Benutzer

    Hallo,

    ich denke ich habe ein relativ einfaches Problem, aber ich komme leider nicht selbst auf die Lösung.

    Ich habe diese zwei Tabellen:

    1. Tabelle "Clubs"
    ID | Name |
    1 | Club 1
    2 | Club 2
    3 | Club 3
    4 | Club 4
    5 | Club 5

    2. Tabelle "Zuordnung"
    Hier wird der User ID einer Club ID zugeordnet
    ID | Club ID | User ID
    1 | 2 | 3
    2 | 2 | 4
    3 | 1 | 2
    4 | 4 | 3

    Ich würde nun gerne alle Club ausgeben die einem User noch nicht zugeordnet wurden.
    Meine PHP Funktion bekommt z.B. die User ID 3 übergeben. Nun sollen alle Clubs ausgegeben werden die dem User 3 noch nicht zugeordnet sind. Wenn der User 3 nun noch nicht in der Tabelle "Zuordnung" zu finden ist, müssen natürlich alle Clubs ausgegeben werden.

    User 3 müsste also folgendes Ergebnis bekommen:
    ID | Name
    1 | Club 1
    3 | Club 3
    5 | Club 5

    Ich hoffe ihr könnt mir weiterhelfen :)

    LG Importise
     
    Zuletzt bearbeitet: 29 Mai 2016
  2. akretschmer

    akretschmer Datenbank-Guru

    quick lösung in PostgreSQL:

    Code:
    test=*# select * from clubs ;
     id |  name  
    ----+--------
      1 | club 1
      2 | club 2
      3 | club 3
      4 | club 4
      5 | club 5
    (5 rows)
    
    test=*# select * from zuordnung ;
     id | club | u_id
    ----+------+------
      1 |  2 |  3
      2 |  2 |  4
      3 |  1 |  2
      4 |  4 |  3
    (4 rows)
    
    test=*# select * from clubs where id not in (select unnest(x) from (select array_agg(club) x from zuordnung where u_id = 3) x);
     id |  name  
    ----+--------
      1 | club 1
      3 | club 3
      5 | club 5
    (3 rows)
    
    wird aber wohl so nicht in MySQL gehen ...
     
  3. akretschmer

    akretschmer Datenbank-Guru

    Wald, Bäume, ...

    Code:
    test=*# select * from clubs where id not in (select id from zuordnung where u_id = 3);;
     id |  name  
    ----+--------
      2 | club 2
      3 | club 3
      5 | club 5
    (3 rows)
    
     
  4. Importise

    Importise Neuer Benutzer

    Hat funktioniert :) Danke für die schnelle Hilfe :)
     
    akretschmer gefällt das.
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