Hallo Fabian
Ich habe die Abfrage übernommen, jedoch wird ein falscher Wert angezeigt. Es wird nur eine stellen ID angezeigt, zu der es gerade keine Krit_Suche_id gibt.
Das LEFT join gibt so weit ich weiss Werte zurück, die zwar in der einen, aber nicht in der anderen Tabelle vorzufinden sind. Ich glaube diese Verwendung ist hier verkehrt.
Das stimmt nicht. a LEFT JOIN b ON .. findet ALLE Datensätze aus a und nur die Datensätze aus b mit entsprechendem Datensatz in a.
Bei deiner DB-Struktur ist das allerdings egal, da es zu jedem Datensatz aus krit_suche wohl einen in krit_suche_id_stellen_id gibt
und dafür auch garantiert einen in stellenanzeigen, wenn ich die Reihenfolge richtig verstanden hab.
Die Tabelle krit_suche_id_stellen_id bringt die beiden ID´s zusammen.
OK - das ist das entscheidende Detail, was mir? fehlte.
Nun müßte ich zuerst die Tabelle Stellenanzeigen abfragen und alle Daten auslesen, die dem Status "öffentlich" entsprechen.
Das geht auch bei der JOIN-Abfrage mit WHERE
Die absolute Krönug wäre es noch, wenn ich auch die Option anbieten könnte auch noch nach der Spalte zeit_ende in der Tabelle Stellenanzeigen zu sortieren.
Option? Im Sinne von Auswahl - das geht imho nicht in SQL.
Sonst ORDER BY geht mit (fast-kein BLOB etc) allen Spalten, die selektiert werden,
ALSO 3-fach JOIN
$result_stellenanzeigen_neu_2 = mysql_query("SELECT st.stellen_id, ks.stellenbez, ks.bereich, ks.firma, ks.ort, ks.plz
FROM krit_suche AS ks
LEFT JOIN krit_suche_id_stellen_id AS ki_si ON ki_si.krit_suche_id=ks.krit_suche_id
RIGHT JOIN stellenanzeigen as st ON st.stellen_id=ki_si.stellen_id ORDER BY $sortierung");
Dabei gehe ich davon aus, dass die Tabelle
krit_suche_id_stellen_id alias ki_si die Felder
krit_suche_id und stellen_id
für die Schlussel hat; falls die dort anders heissen, musst du das bei den ON - Bed. anpassen.
Bin mir bei dem Right-Join nicht ganz sicher, so sollte er dir auch Stellen liefern, zu denen keine Daten in krit_suche stehen. Sonst auch LEFT/INNER probieren.
ps. Ynwa is kein Name sondern die Abkürzung eines sehr bekannten Fußball-Liedes.
in diesem Sinne