Bestimmte Spalten anhand von anderer Tabelle ausgeben

Importise

Neuer Benutzer
Beiträge
2
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:
Werbung:
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 ...
 
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)
 
Werbung:
Zurück
Oben