mysql - Headi sql : sql error 1054 -


i have code. attempting join 3 tables. table names confusing have far:

select bx-book-ratings.isbn, bx-books.title, bx-users.location       ,bx-book-ratings.book-rating `bx-book-ratings` inner join `bx-users`     on `bx-book-ratings`.user-id=`bx-users`.user-id inner join `bx-books`     on `bx-book-ratings`.isbn=`bx-books`.isbn 

error: unknown column 'bx' in field list.

any advice or tips appreciated.

a dash character not valid in unescaped identifier.

the quick fix query escape of identifiers (table names , column names) enclosing them in backticks.

for example:

select `bx-book-ratings`.`isbn`      , `bx-books`.`title`      , `bx-users`.`location`      , `bx-book-ratings`.`book-rating`   `bx-book-ratings`   join `bx-users`      on `bx-book-ratings`.`user-id` = `bx-users`.`user-id`   join `bx-books`      on `bx-books`.`isbn` = `bx-book-ratings`.`isbn` 

you may want consider avoiding using dash character in identifiers. (renaming tables , columns.) underscore character commonly used separator. recommend consider assigning short table alias in query, , qualifying column references alias.

for example:

select r.isbn      , b.title      , u.location      , r.book_rating   bx_book_ratings r   join bx_users u     on u.user_id = r.user_id   join bx_books b     on r.isbn = b.isbn 

Comments