Raketenwilli: Inner-Join, Tabelle unvollständig

Beitrag lesen

Weis jemand was da falsch läuft?

Ja. Viel.

Zuerst hat Deine Tabelle ein Problem. Es fehlt eine Beziehung zwischen den Orten und dem Land. Ich habe eine Spalte "parent" hinzugefügt, dann auch noch Erfurt in Thüringen damit der Effekt sichtbar wird:

BEGIN TRANSACTION;
CREATE TABLE IF NOT EXISTS "orte" (
	"id"	INTEGER,
	"parent"	INTEGER,
	"ebene"	INTEGER,
	"name"	TEXT,
	PRIMARY KEY("id")
);
INSERT INTO "orte" VALUES (1,NULL,1,'Niedersachsen');
INSERT INTO "orte" VALUES (2,1,2,'Hannover');
INSERT INTO "orte" VALUES (3,1,2,'Hildesheim');
INSERT INTO "orte" VALUES (4,1,2,'Göttingen');
INSERT INTO "orte" VALUES (5,NULL,1,'Thüringen');
INSERT INTO "orte" VALUES (6,5,2,'Erfurt');
COMMIT;

Die Abfrage geht dann via inner Join

SELECT a.name as City, b.name AS Country  
FROM 
	orte AS a,
	orte AS b
WHERE
	a.parent = b.id

liefert (die von mir) erwartete Tabelle mit allen Städten und den dazu gehörenden Bundesländern.

Zur weiteren Eingrenzung kannst Du dann ETWAS wie

AND City="Erfurt"

oder

AND Country="Niedersachsen"

zur where-Clausel hinzufügen.