У меня есть следующие 4 таблицы, настроенные в MySQL. Я хочу иметь возможность выводить данные с определенными битами данных из всех них с помощью объединений, но я не могу заставить его работать.MySQL Присоединиться к 3 таблицам возвращает только одно значение
TABLE books
---------------------------
| id | name |
---------------------------
| 1 | War of the Worlds |
| 2 | The Treasure Island |
| 3 | The Hobbit |
| 4 | Friend or Foe |
---------------------------
TABLE users
--------------
| id | name |
--------------
| 1 | Alfie |
| 2 | Ben |
| 3 | Charlie |
| 4 | Doug |
--------------
TABLE library
-------------------
| user_id | book_id |
-------------------
| 1 | 1 |
| 1 | 3 |
| 1 | 4 |
| 1 | 5 |
| 2 | 2 |
| 4 | 4 |
-------------------
TABLE reviews
------------------
| book_id | rating |
------------------
| 1 | 4 |
| 1 | 3 |
| 1 | 4 |
| 3 | 5 |
| 4 | 1 |
| 4 | 3 |
| 4 | 1 |
------------------
Я попытался с помощью следующей MySQL запросов:
SELECT
library.user_id,
users.name,
library.book_id,
books.name,
COUNT(reviews.book_id)
FROM library
JOIN users
ON users.id = library.user_id
JOIN books
ON books.id = library.book_id
LEFT JOIN reviews
ON reviews.book_id = books.id
WHERE library.user_id = 1;
Я хочу выходной быть что-то вдоль линий:
------------------------------------------------------------
| user_id | users.name | book_id | books.name | COUNT |
------------------------------------------------------------
| 1 | Alfie | 1 | War of the Worlds | 3 |
| 1 | Alfie | 3 | The Hobbit | 1 |
| 1 | Alfie | 4 | Friend or Foe | 3 |
------------------------------------------------------------
Но я с моим запросом :
------------------------------------------------------------
| user_id | users.name | book_id | books.name | COUNT |
------------------------------------------------------------
| 1 | Alfie | 1 | War of the Worlds | 7 |
------------------------------------------------------------
Я: orry, если это звучит действительно глупо, потому что я, вероятно, просто тупой, но я уже много лет играю вокруг, и я не могу понять ничего, поэтому любая помощь была бы весьма признательна. Спасибо вам большое за ваше время.
P.S. Извиняюсь за дерьмовое форматирование, я пытался сделать это как можно проще :)
Попробуйте изменить все 'JOIN' на 'LEFT JOIN' – eirikir