1. SELECT
Das Ergebnis des 1. SELECT ist eine Liste von IDs, die nach der Anzahl der Übereinstimmungen mit den Suchkriterien sortiert ist.
Die Umkreissuche geschieht aus Performance-Gründen in 2 Stufen: 1. Abstecken eines Quadrates,
und 2. Anwenden des Satzes von Pythagoras auf die Orte in diesem Quadrat.
SELECT [IDs von Haltestellen], [Anzahl der Treffer je ID], [Koordinaten,]
FROM ([SUBSELECT 1] UNION [SUBSELECT 2] UNION [SUBSELECT 3] ...) AS zeilen,
[Angabe der Tabelle mit Infos über Haltestellen und ihren Standort]
WHERE [Bedingungen: Vergleich von IDs, Umkreissuche 1. Teil]
GROUP BY [Gruppierung anhand der in den Subselects gefundenen IDs]
HAVING [Auswahl aus dem Ergebnis mit dem 2. Teil der Umkreissuche]
ORDER BY [absteigende Sortierung der Ergebnisse nach Treffer-Zahl] DESC
Die Struktur des SUBSELECT enthält mehrere Blöcke in der Struktur
SELECT [ID] FROM [Tabelle] WHERE UPPER[Feld] LIKE UPPER('%[Suchbegriff]%').
Feldinhalte und Suchbegriffe werden in der Suche als nur aus Großbuchstaben bestehend
behandelt, damit Groß-/Kleinschreibung keine Rolle spielt. Dies soll die Trefferzahl
ebenso erhöhen wie die Prozentzeichen, die Platzhalter für beliebig viele Zeichen sind.
2. SELECT
Aufruf von Daten der gefundenen Haltestellen
Die Darstellung erfolgt in einer Ergebnisliste.
SELECT [Name, Adresse, Linien]
FROM [mehrere mit "LEFT JOIN ... ON" verbundene Tabellen]
WHERE [ID der Haltestelle] = [ID in Ergebnisliste des 1. SELECT]
GROUP BY [ID der Haltestelle]