T
theomega
Gast
Hallo Leute,
ich habe folgende Sitiuation:
1. Tabelle "data"
- dataid (Index, AUTO_INCREMENT)
- editorid (Index)
- creatorid (Index)
2. Tabelle "user"
- userid (Index, AUTO_INCREMENT)
- username (VARCHAR)
- userposts
- einige (ca. 20 weitere Felder)
Ich will jetzt alle Einträge aus der Data-Tabelle auslesen. Dabei ist editorid die ID des User der den Eintrag bearbeitet hat und creatorid die ID des User der den Eintrag erstellt hat. Mein Ansatz mit einem Doppelten LEFT Join geht auch
Das Problem ist jetzt: Wenn ich dann mit JDBC versuche das Feld "username" auszulesen weiß Java natürlich nicht ob ich jetzt den creator oder den editor meine. Wie komm ich jetzt getrennt an die daten der Benutzer hin?
Der Einzige Ansatz der mir bekannt ist:
Ich muss das Query so verändern:
Das ist aber extrem unhandlich, vor allem: Jedesmal wenn ich ein neues Feld in die user-tabelle einfüge muss ich das Query neu anpassen. Nachdem die Tabelle über 20 Felder enthält wird das Query auch extrem unhandlich.
Welche Alternativen gibt es?
Datenbank-Server ist MySQL ich würde aber Wert auf eine allgemein-gültige Löung legen.
Gruß
TO
ich habe folgende Sitiuation:
1. Tabelle "data"
- dataid (Index, AUTO_INCREMENT)
- editorid (Index)
- creatorid (Index)
2. Tabelle "user"
- userid (Index, AUTO_INCREMENT)
- username (VARCHAR)
- userposts
- einige (ca. 20 weitere Felder)
Ich will jetzt alle Einträge aus der Data-Tabelle auslesen. Dabei ist editorid die ID des User der den Eintrag bearbeitet hat und creatorid die ID des User der den Eintrag erstellt hat. Mein Ansatz mit einem Doppelten LEFT Join geht auch
Code:
SELECT * FROM data
LEFT JOIN user AS creator ON (creator.userid=data.creatorid)
LEFT JOIN user AS editor ON (editor.userid=data.editorid)
Das Problem ist jetzt: Wenn ich dann mit JDBC versuche das Feld "username" auszulesen weiß Java natürlich nicht ob ich jetzt den creator oder den editor meine. Wie komm ich jetzt getrennt an die daten der Benutzer hin?
Der Einzige Ansatz der mir bekannt ist:
Ich muss das Query so verändern:
Code:
SELECT data.*, creator.userid AS creatoruserid, creator.userposts AS creatoruserpost,creator.username AS creatorusername, [....], editor.userid AS editoruserid, editor.userposts AS editoruserposts
LEFT JOIN user AS creator ON (creator.userid=data.creatorid)
LEFT JOIN user AS editor ON (editor.userid=data.editorid)
Das ist aber extrem unhandlich, vor allem: Jedesmal wenn ich ein neues Feld in die user-tabelle einfüge muss ich das Query neu anpassen. Nachdem die Tabelle über 20 Felder enthält wird das Query auch extrem unhandlich.
Welche Alternativen gibt es?
Datenbank-Server ist MySQL ich würde aber Wert auf eine allgemein-gültige Löung legen.
Gruß
TO