Настройка MySQL: шаг за шагом.
программы -> связаны с -> ораторами (по идентификатору программы)
На данный момент мне легко запросить все данные:
SELECT *
FROM programs
JOIN speakers on programs.program_id = speakers.program_id
Красиво и просто.
Хитрость для меня заключается в следующем. Моя таблица спикеров также связана с третьей таблицей "Книги". Итак, в таблице «докладчики» у меня есть «book_id», а в таблице «books» book_id связан с именем.
Я пробовал это (в том числе ГДЕ вы заметите):
SELECT *
FROM programs
JOIN speakers on programs.program_id = speakers.program_id
JOIN books on speakers.book_id = books.book_id
WHERE programs.category_id = 1
LIMIT 5
Нет результатов.
Мои вопросы:
- Что я делаю не так?
- Какой самый эффективный способ сделать этот запрос?
В принципе, я хочу вернуть все данные программ и данные книг, но вместо book_id мне нужно, чтобы он возвращался как название книги (из 3-й таблицы).
Заранее спасибо за помощь.
UPDATE:
(вместо того, чтобы открывать новый вопрос)
Левое соединение сработало для меня. Однако у меня новая проблема. Несколько книг могут быть назначены одному оратору.
Используя левое соединение, возвращает две строки !! Что мне нужно добавить, чтобы вернуть только одну строку, но разделить две книги.