Hi,
ich habe eine Tabelle mit Kenntnisständen von Usern zu bestimmten Tätigkeiten.
Also, vereinfacht
User-ID | Tätigkeit | Antwort
User-IDs kommen also mehrfach vor, je nach Anzahl der ausgefüllten Tätigkeiten.
Ich möchte jetzt diese Tabelle durchsuchen lassen, und zwar kann man seine Filterkriterien "zusammenklicken", d.h. Länge und Inhalt der Abfrage ändert sich je nachdem.
Jedenfalls möchte ich z.B. alle User ausgeben, die mysql UND PHP können (nur ein Beispiel), also die bei Tätigkeit "mysql" Antwort "gut" UND bei Tätigkeit "php" Antwort "sehr gut" haben.
Ich würde es eigentlich mit JOIN auf dieselbe Tabelle machen, z.B.
Da wie gesagt diese Abfragen zusammengeklickt werden und ganz schön lang werden können, ist es nicht praktisch so, ich muss für jedes Kriterium einen neuen Join machen.
Gibt es einen anderen Weg?
Vielleicht kommt mir das mit den vielen Joins auch nur so unpraktisch vor. Bin jedenfalls für Ideen dankbar.
Gruß,
ministry
ich habe eine Tabelle mit Kenntnisständen von Usern zu bestimmten Tätigkeiten.
Also, vereinfacht
User-ID | Tätigkeit | Antwort
User-IDs kommen also mehrfach vor, je nach Anzahl der ausgefüllten Tätigkeiten.
Ich möchte jetzt diese Tabelle durchsuchen lassen, und zwar kann man seine Filterkriterien "zusammenklicken", d.h. Länge und Inhalt der Abfrage ändert sich je nachdem.
Jedenfalls möchte ich z.B. alle User ausgeben, die mysql UND PHP können (nur ein Beispiel), also die bei Tätigkeit "mysql" Antwort "gut" UND bei Tätigkeit "php" Antwort "sehr gut" haben.
Ich würde es eigentlich mit JOIN auf dieselbe Tabelle machen, z.B.
PHP-Code:
SELECT t1.user FROM tabelle AS t1 LEFT JOIN tabelle AS t2 WHERE
(t1.tätigkeit = 63 AND t1.answer = 328) AND (t2.tätigkeit = 64 AND t2.answer =
341) GROUP BY t1.user
Gibt es einen anderen Weg?
Vielleicht kommt mir das mit den vielen Joins auch nur so unpraktisch vor. Bin jedenfalls für Ideen dankbar.
Gruß,
ministry
Kommentar