SQL Abfrage mysql
arthur
- datenbank
Hallo,
ich habe eine Tabelle mit Ortsnamen, Plz und eine Id.
Dabei kann die Idr bei mehreren Orten vorkommen, aber es kann auch sein, dass ein Ort mehrfach vorkommt, jeweils mit einer anderen Id.
Eine zweite Tabelle setzt diese Id eindeutig in Bezug zu einem Bezeichnunstext.
Ich brauche nun alle Bezeichnungstexte aus der zweiten Tabelle, wenn ich in der Tabelle mit den Orten nach ort oder plz suche.
Das soll auch funktionieren, wenn mindesten 3 Ziffern bei der plz oder 3 Buchstaben bei dem Ort angegeben wurden.
Ich brauche jetzt zwei Abfragen, 1mal für die Suche über den Ort und einmal über die Postleitzahl.
Irgendwie kriege ich das nicht gebacken.
Vielen dank für Eure regen Antworten :)
Hallo,
ich habe eine Tabelle mit Ortsnamen, Plz und eine Id.
Dabei kann die Idr bei mehreren Orten vorkommen, aber es kann auch sein, dass ein Ort mehrfach vorkommt, jeweils mit einer anderen Id.
Eine zweite Tabelle setzt diese Id eindeutig in Bezug zu einem Bezeichnunstext.
Ich brauche nun alle Bezeichnungstexte aus der zweiten Tabelle, wenn ich in der Tabelle mit den Orten nach ort oder plz suche.
Das soll auch funktionieren, wenn mindesten 3 Ziffern bei der plz oder 3 Buchstaben bei dem Ort angegeben wurden.
Ich brauche jetzt zwei Abfragen, 1mal für die Suche über den Ort und einmal über die Postleitzahl.
Irgendwie kriege ich das nicht gebacken.
gib mir
die Bezeichnungstexte
aus
tabelle2
die mit
tabelle1
über
gleiche id-Werte verknüpft ist
wobei nur die Datensätze interessieren
bei denen die plz mit den gleichen Ziffern beginnt wie die Eingabe
(bei denen der Ort mit den gleichen Buchstaben beginnt wie die Eingabe)
Dieser Pseudocode läßt sich 1:1 in ganz einfache Abfragen mit einem Join (oder einer Unterabfrage) umsetzen. Was hast Du versucht? Woran bist Du gescheitert?
Freundliche Grüße
Vinzenz
Hallo Vinzenz,
Dieser Pseudocode läßt sich 1:1 in ganz einfache Abfragen mit einem Join (oder einer Unterabfrage) umsetzen. Was hast Du versucht? Woran bist Du gescheitert?
Schon alleine an den Begriffen JOIN und Unterabfrage bzw. SUBSELECT.
Jetzt weiß ich wenigstens nach was ich suchen muss.
Danke
Zu früh gefreut.
$SQL = "SELECT * FROM tabelle1 WHERE id =(SELECT id FROM tabelle2 WHERE plz LIKE '715%')";
-> Subquery returns more than 1 row
Gruß
Hi,
$SQL = "SELECT * FROM tabelle1 WHERE id =(SELECT id FROM tabelle2 WHERE plz LIKE '715%')";
-> Subquery returns more than 1 row
Wenn du einen Wert auf Gleichheit mit einem von mehreren Werten vergleichen willst, nimmst du dafür nicht =, sondern ...?
MfG ChrisB
Hi,
$SQL = "SELECT * FROM tabelle1 WHERE id =(SELECT id FROM tabelle2 WHERE plz LIKE '715%')";
-> Subquery returns more than 1 row
Wenn du einen Wert auf Gleichheit mit einem von mehreren Werten vergleichen willst, nimmst du dafür nicht =, sondern ...?
Also einfach das = vor der Klammer des Subselects durch ...? ersetzen?
Fehlermeldung:
You have an error in your SQL syntax near '..?(SELECT
Gruß
Hallo,
es klappt!
= durch IN ersetzt und es läuft :)
Gruß
und DANKE