2016-04-09 7 views
0

У меня есть три таблицы: -Присоединение 3 таблицы и с помощью WHERE

пользователей (имя пользователя, business_id и т.д.)

бизнеса (business_id, service_type, широта, долгота и т.д.)

адреса (address_id, country_iso и т.д.)

И у меня есть следующий запрос, который работает отлично:

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

Теперь я также хочу отфильтровать результаты по значению «country_iso» (столбец в таблице «адреса»).

я попытался сделать следующее, но я получаю сообщение об ошибке:

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 = ? 

Я попытался следующие, как хорошо, но все-таки получил ошибку:

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 = ? 

Что такое правильный способ получить результаты мне нужны?

+3

И точная ошибка? –

+0

Попробуйте поместить таблицу адресов в вашу часть FROM запроса – MacGyer

+0

Я получаю сообщение об ошибке. Подготовленный оператор просто терпит неудачу. Когда я пытаюсь распечатать сообщение об ошибке, он возвращает пустое. –

ответ

0

Благодаря комментарию Юргена д-ра, я понял, что неправильно печатал сообщение об ошибке. я получил сообщение об ошибке: Error: 1054 Неизвестный столбец «businesses.address_id» в «по статье»

Так что теперь я заметил, что столбец «address_id» на самом деле называется «адрес» в таблице «бизнес».

Смежные вопросы