2016-02-09 4 views
0

Я пытаюсь выполнить join между таблицами в Laravel. Однако я получаю это, при загрузке страницы:Laravel: Inner join QueryException

QueryException in Connection.php line 651: 

Это запрос:

Это не работает, либо, если я удалить use(), и строить «где» на статическое значение.

Детальная ошибка:

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an 
error in your SQL syntax; check the manual that corresponds to your 
MySQL server version for the right syntax to use near '1 ?' at line 1 
(SQL: select * from `or_patches` inner join `or_clients` on 
`or_patches`.`client_id` = `or_clients`.`id` and 
`or_clients`.`customer_id=` 1) 

Кто-нибудь знает почему? Я также пробовал использовать left joins, но безуспешно.

ОБНОВЛЕНИЕ: Исправлено изменение "." на "," в предложении where. Это устранило проблему. Спасибо @AlexRussel.

+0

У вас есть. а не запятой в строке authid вашего SQL :) – alexrussell

+0

(Также вам не хватает '-' в' -> where', но я предполагаю, что это опечатка SO-транскрипции.) – alexrussell

+0

Должно быть, , Спасибо, что заметили! Тем не менее, он по-прежнему вызывает ту же ошибку:/ – StevenThelin

ответ

1

Из внешнего вида ошибки SQL (проблема с SQL ...`or_clients.customer_id=` 1) вы получаете = из вашего запроса, прикрепленного к имени поля. Взглянув на код, он выглядит точно так же, как простой опечаткой, где вы используете . вместо , в вызове метода, таким образом сцеплению = в поле:

>where('or_clients.customer_id'. '=', $authid); 

Должно быть:

->where('or_clients.customer_id', '=', $authid); 
+0

Привет, спасибо! :) – StevenThelin