2016-04-09 18 views
0

ich drei Tabellen: -3 Tabellen Füge- und WHERE

Benutzer (Benutzername, business_id, etc.)

Unternehmen (business_id, service_type, Breite, Länge, etc.)

Adressen (address_id, country_iso, etc.)

Und ich habe die folgende Abfrage, die gut funktioniert:

SELECT username, users.business_id, businesses.latitude, businesses.longitude 
FROM users 
JOIN businesses 
ON users.business_id = businesses.business_id 
WHERE service_type = ? 

Nun möchte ich auch die Ergebnisse durch einen "country_iso" -Wert (eine Spalte in der "Adressen" -Tabelle) filtern.

Ich habe versucht, die folgenden, aber ich erhalte eine Fehlermeldung zu tun:

SELECT username, users.business_id, businesses.latitude, businesses.longitude 
FROM users 
JOIN businesses 
ON users.business_id = businesses.business_id 
JOIN addresses 
ON businesses.address_id = addresses.address_id 
WHERE businesses.service_type = ? 
AND addresses.country_iso = ? 

ich folgendes als auch versucht, aber immer noch einen Fehler:

SELECT username, users.business_id, businesses.latitude, businesses.longitude 
FROM users 
JOIN businesses 
ON users.business_id = businesses.business_id 
AND businesses.service_type = ? 
JOIN addresses 
ON businesses.address_id = addresses.address_id 
WHERE addresses.country_iso = ? 

Was ist der richtige Weg die bekommen Ergebnisse, die ich brauche?

+3

Und der genaue Fehler ist? –

+0

Versuchen Sie, die Adressentabelle in Ihren FROM-Teil der Abfrage zu setzen – MacGyer

+0

Ich bekomme keine Fehlermeldung .. Die vorbereitete Anweisung schlägt einfach fehl. Wenn ich versuche, die Fehlermeldung zu drucken, wird leer zurückgegeben. –

Antwort

0

Dank Jürgens Kommentar wurde mir klar, dass ich die Fehlermeldung nicht korrekt ausgedruckt habe. Ich habe die Fehlermeldung: Fehler: 1054 Unknown column 'businesses.address_id' in 'on-Klausel'

So, jetzt merke ich, dass die 'address_id' Spalte tatsächlich 'Adresse' in der 'Business' Tabelle genannt wird.