2016-03-28 2 views
0

У меня есть две таблицы: -выберите столбцы из нескольких таблиц с присоединиться

users (username, business_id, etc.)

businesses (business_id, service_type, latitude, longitude, etc.)

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

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

Теперь я хочу также иметь в результатах столбцы широта 'и' долгота 'в' предприятия 'стол. Как я могу это сделать?

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

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

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

ответ

1

Используйте Явный синтаксис:

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

Вы смесительное неявным с явным синтаксисом. Таким образом, , businesses, который используется в предложении FROM, на самом деле не требуется.

+0

Я сделал то, что вы предлагали. Это не вызывает ошибки, но не дает значений широты и долготы из базы данных. Набор результатов возвращает значение «0» для каждого из этих столбцов ... –

+0

@ElyakimLevi Можете ли вы опубликовать некоторые примеры данных, которые помогут выяснить проблему? –

+0

Ах, это моя вина. Имел одну строку в базе данных, которая на самом деле имела 0 значений. Спасибо за помощь. Я отмечу это как принятый ответ. –

2

у вас есть бизнес дважды в которых часть:

FROM users, businesses JOIN businesses 

удалить первый, должно быть, как и раньше:

FROM users JOIN businesses 
1

Существует опечатка с JOIN синтаксиса, попробуйте следующее:

SELECT users.username, users.business_id, businesses.latitude, businesses.longitude 
FROM users JOIN businesses ON users.business_id = businesses.business_id 
WHERE service_type = ? 
Смежные вопросы