Hey Speedy!
Ich habe eine Tabelle, in der stehen bspw. Personen drin.
Dann gibt es eine zweite Tabelle, in der stehen bestimmte Eigenschaften/Fähigkeiten der Personen drin. Diese Tabelle hat dementsprechend ein Feld, dessen Wert ich der ersten Personen-Tabelle zuordnen kann.
Nun gibt es noch eine dritte Tabelle, in der Bewertungen der Personen drin stehen.
Also ich denke, die Aufteilung, so wie Du sie jetzt machst, ist vielleicht nicht ganz vernünftig.
Also ich halte einmal grob fest:
table1 ( benutzer (b)):
+-------------------+---- ...
| benutzer_id (key) | name ...
+-------------------+-------- ...
| |
| ... | ...
| |
table2 ( eigenschaften (e)):
+-----------------------+-------------+------
| eigenschafts_id (key) | benutzer_id | ...
+-----------------------+-------------+----------
| | |
| ... | ... | ...
| | |
table3 ( ratings (r)):
+-----------------------+-------------+------------+---
| bewertungs_id (key) | benutzer_id | bewertung | ...
+-----------------------+-------------+------------+-------
| | | |
| ... | ... | ... | ...
| | | |
SELECT *
FROM table1 b,
table2 e,
( SELECT * FROM table1 sub_b, table3 sub_r WHERE sub_b.benutzer_id = sub_r.benutzer_id ORDER BY sub_r.bewertung LIMIT 10 ) r
WHERE b.benutzer_id = e.benutzer_id
AND b._benutzer_id = r.benutzer_id
Das sollte Dir sauber alle Felder liefern, die auf die 3 Tabellen passen und bei denen nur die besten 10 Bewertungen je benutzer beachtet werden.
Mit den Feldern kannst Du dann ja noch arbeiten, wie es nötig ist.
Hilft Dir das?
Beste Grüße
~ Thilo