У меня есть странная схема, но когда она была разработана, она казалась хорошей идеей в то время. У меня есть один мастер стол, lesson_objects
, который имеет внешние ключи, связанные с лексикой, видео и викторинами.Несколько SQL присоединяется к сложному запросу
Vocab стол:
CREATE TABLE `se_vocab` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`vocab_word` VARCHAR(255) NOT NULL,
`vocab_audio` INT(10) NULL DEFAULT '0',
`vocab_image` INT(10) NULL DEFAULT '0',
PRIMARY KEY (`id`)
)
видео таблица:
CREATE TABLE `se_video` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`video_name` VARCHAR(255) NOT NULL,
`video_description` MEDIUMTEXT NOT NULL,
`video_file_name` VARCHAR(50) NULL DEFAULT NULL,
`video_url` VARCHAR(255) NOT NULL,
PRIMARY KEY (`id`)
)
викторин стол:
CREATE TABLE `se_quizzes` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`quiz_name` VARCHAR(80) NOT NULL,
`quiz_description` TINYTEXT NULL,
PRIMARY KEY (`id`)
)
объектов урока (содержат внешние ключи предыдущих таблиц)
CREATE TABLE `se_lesson_org` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`lesson_id` INT(10) NOT NULL,
`section_object_type` ENUM('video','vocabulary','quiz') NOT NULL,
`section_object_id` INT(10) NOT NULL,
PRIMARY KEY (`id`)
)
Я пытаюсь создать запрос, который возвращает все записи из lesson_objects, но и включает в себя данные в столбцах для данного типа в этой записи (словарный запас и т.д.)
Например:
только мой запрос не возвращает ни одной строки, в то время как в идеале должно получиться несколько строк с каждой записью, содержащей некоторые пустые столбцы. Например. если это не словарь, столбцы для викторины и видео будут пустыми.
Мои попытки очень плохо, но вот один для руководства:
SELECT
lo.id, lo.section_object_type, lo.section_object_id,
vo.id, vo.vocab_text, vo.vocab_image, vo.vocab_audio
vi.id, vi.video_name, vi.video_url,
q.id, q.quiz_name
FROM se_lesson_org lo, se_vocab vo, se_video vi, se_quizzes q
WHERE lo.section_object_id = vo.id
OR lo.section_object_id = vi.id
OR lo.section_object_id = q.id
Любая помощь/комментарии будут оценены. Благодарю.
Показать образец данных или создать sqlfiddle – Jens
Пожалуйста, напишите ожидаемый формат результата. –
MySQL или SQL Server? Не помещайте продукты, которые не задействованы! – jarlh