Что не так в sql запросе через PDO?

Есть 3 таблицы : books , authors, authors_books . Реализована связь многие к многим .
Нужно вывести всю инфу о книге и автора .
Когда делаю запрос напрямую в phpmyadmin
SELECT b.*,a.surname FROM books b 
INNER JOIN authors_books ab on b.id = ab.book_id 
INNER JOIN authors a on ab.author_id = a.id;

то все работает . Но вот когда пытаюсь сделать это на сайте
$sql = "SELECT b.*,a.surname FROM books b"
                . "INNER JOIN authors_books ab on b.id = ab.book_id"
                . "INNER JOIN authors a on ab.author_id = a.id";
        //$sql = "SELECT * FROM books";
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $result = $db->query($sql);
        var_dump($result);
        // Указываем, что хотим получить данные в виде массива
        $result->setFetchMode(PDO::FETCH_ASSOC);
        }

Выдает ошибку
Uncaught exception 'PDOException' with message 'SQLSTATE[42S02]: Base table or view not found: 1051 Unknown table 'b''

Менял название таблицы в запросе просто books , тоже самое пишет , что неизвестная . Почему так получается ? кто знает ?
  • Вопрос задан
  • 276 просмотров
Решения вопроса 1
@Nc_Soft
Поставьте пробел перед INNER JOIN получается вот так
FROM books bINNER JOIN authors_books
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы