dedlfix: Problem mit WHERE bzw. JOIN Syntax

Beitrag lesen

echo $begrüßung;

Ich habe 3 Tabellen:

Tabelle Orte mit folgenden Feldern:
Tabelle Regionen mit folgenden Feldern
Ort2Regionen

Mit der letzten Tabelle kannst du eine m:n-Beziehung zwischen Orten und Regionen aufbauen. Damit kann man abbilden, dass Regionen mehrere Orte haben können und dass Orte sich in mehreren Regionen befinden können. Wird letzteres wirklich benötigt? Wenn nicht reicht ein Feld mir der Regions-ID in der Tabelle Orte.

Nun will ich im ersten Schritt Abfragen welchen  Orte keiner Region zugeordnet sind [...]
$sql="SELECT ao_name FROM orte, orte2regionen WHERE ao_id!=aa_ao_id";

Du solltest dich zuerst um eine ordentliche Verknüpfung bemühen. Das Ein- oder Ausschluss-Kriterium kommt im zweiten Schritt hinzu.
Verknüpfungen kann man in der WHERE-Klausel herstellen, übersichtlicher scheint mir jedoch die JOIN-Syntax

SELECT ... FROM tabelle1 JOIN tabelle2 ON tabelle1.feld=tabelle2.feld WHERE ...

Wenn du die Datensätze haben möchtest, die nur in ener Tabelle vorkommen, dann benötigst du einen LEFT JOIN, damit auch die Datensätzt zum Ergebnis gehören, die kein Pendant in der anderen Tabelle haben und als Bedingung prüfst du, ob ein Feld der anderen Tabelle NULL ist (IS NULL) welches garantiert einen Wert enthalten müsste (die Primarschlüsselspalte bietet sich hier an).

echo "$verabschiedung $name";