У меня есть 2 таблицы, книги и genre_order. Я пытаюсь выбрать все значения из книг (t1) и упорядочить их по жанрам, используя столбец порядка из genre_order (t2), используя JOIN. Результирующий набор упорядочивает их очень хорошо, однако я не знаю, как изменить book_id для отражения нового порядка.
table : books
+-------+------------------+-----------+
|book_id| name | genre |
+-------+------------------+-----------+
| 1 | Harry Potter | Fantasy |
| 2 | The Alchemist | Fantasy |
| 3 | Inferno | Thriller |
| 4 | Steve Jobs | Biography|
| 5 | John Adams | Biography|
+-------+------------------+-----------+
table : genre_order
+-----------+-------+
| genre | order |
+-----------+-------+
| Biography | 1 |
| Fantasy | 2 |
| Thriller | 3 |
+-----------+-------+
Запрос:
SELECT * FROM books t1 JOIN genre_order t2 ON t1.genre = t2.genre ORDER BY t2.order ASC
result:
+-------+------------------+-----------+-----------+------+
|book_id| name | genre | genre | order|
+-------+------------------+-----------+-----------+------+
| 4 | Steve Jobs | Biography| Biography| 1 |
| 5 | John Adams | Biography| Biography| 1 |
| 1 | Harry Potter | Fantasy | Fantasy | 2 |
| 2 | The Alchemist | Fantasy | Fantasy | 2 |
| 3 | Inferno | Thriller | Thriller | 3 |
+-------+------------------+-----------+-----------+------+
Ожидаемый результат:
+-------+------------------+-----------+------+
|book_id| name | genre | order|
+-------+------------------+-----------+------+
| 1 | Steve Jobs | Biography| 1 |
| 2 | John Adams | Biography| 1 |
| 3 | Harry Potter | Fantasy | 2 |
| 4 | The Alchemist | Fantasy | 2 |
| 5 | Inferno | Thriller | 3 |
+-------+------------------+-----------+------+
Можно ли изменить book_id в наборе результатов ?. Кроме того, как избежать лишних столбцов?