31.03.2022, 13:23
Liebe Community,
mich überfordert in einem Plugin gerade das Joinen über 3 Tabellen.
Das Plugin gibt aus einer bestimmten Foren-fid Zusatzinformationen zum Thread in einer Liste aus.
Diese Zusatz-Infos werden beim Absenden von Firstpost über Eingabefelder in die Datenbank geschrieben.
Aus verschiedenen Tabellen wird danach die Liste generiert.
Tabelle 1 (tid, Info1, Info2...)
Tabelle 2 (mybb_threads)
Tabelle 3 (tid, icon)
Bis zum ersten Join funktioniert alles perfekt.
Sobald ich aber die dritte Tabelle mit den Threadicons joine, komme ich auf´s Glatteis.
Die ON-Klausel im letzten Join sorgt dafür, dass ich nur noch Datensätze bekomme, wo ein Icon in der Tabelle existiert. Das ist natürlich so nicht gewollt. Aber egal was ich mit dieser Klausel mache...
Entweder ich bekomme Datensätze mehrfach oder ich bekomme Datensätze, die zwar ein Icon haben, aber in der Tabelle Info gar nicht geführt sind, da sie aus aus einer anderen Foren-fid stammen, oder... oder... oder
Ich bin überfordert.
Kann es daran liegen, dass alles Tabellen die Spalte "tid" als PrimaryKey haben und ich diesen Key in den Klauseln benutze.
Kann mir wer einen Tipp geben?
Danke!!
mich überfordert in einem Plugin gerade das Joinen über 3 Tabellen.
Das Plugin gibt aus einer bestimmten Foren-fid Zusatzinformationen zum Thread in einer Liste aus.
Diese Zusatz-Infos werden beim Absenden von Firstpost über Eingabefelder in die Datenbank geschrieben.
Aus verschiedenen Tabellen wird danach die Liste generiert.
Tabelle 1 (tid, Info1, Info2...)
Tabelle 2 (mybb_threads)
Tabelle 3 (tid, icon)
PHP-Code:
$wanted = $db->query("
SELECT w.*, ti.icon FROM ".TABLE_PREFIX."info w
JOIN ".TABLE_PREFIX."threads t ON (w.tid = t.tid)
JOIN ".TABLE_PREFIX."threadicons ti ON (w.tid = ti.tid)");
Bis zum ersten Join funktioniert alles perfekt.
Sobald ich aber die dritte Tabelle mit den Threadicons joine, komme ich auf´s Glatteis.
Die ON-Klausel im letzten Join sorgt dafür, dass ich nur noch Datensätze bekomme, wo ein Icon in der Tabelle existiert. Das ist natürlich so nicht gewollt. Aber egal was ich mit dieser Klausel mache...
Entweder ich bekomme Datensätze mehrfach oder ich bekomme Datensätze, die zwar ein Icon haben, aber in der Tabelle Info gar nicht geführt sind, da sie aus aus einer anderen Foren-fid stammen, oder... oder... oder
Ich bin überfordert.
Kann es daran liegen, dass alles Tabellen die Spalte "tid" als PrimaryKey haben und ich diesen Key in den Klauseln benutze.
Kann mir wer einen Tipp geben?
Danke!!