SQL, который строит таблицы,
--
-- Table structure for table `careers`
--
CREATE TABLE IF NOT EXISTS `careers` (
`career_id` int(11) NOT NULL auto_increment,
`career_name` varchar(75) NOT NULL,
`career_desc` text NOT NULL,
`degree_needed` enum('Yes','No') NOT NULL,
`useful_info` text,
`useful_links` text,
PRIMARY KEY (`career_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=34 ;
-- --------------------------------------------------------
--
-- Table structure for table `course`
--
CREATE TABLE IF NOT EXISTS `course` (
`course_id` int(11) NOT NULL auto_increment,
`course_type` varchar(75) NOT NULL,
`course_names` text NOT NULL,
`extra_needed` enum('Yes','No') default NULL,
`course_link` varchar(150) NOT NULL,
`grades_grade_id` int(11) NOT NULL,
PRIMARY KEY (`course_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=87 ;
-- --------------------------------------------------------
--
-- Table structure for table `grades`
--
CREATE TABLE IF NOT EXISTS `grades` (
`grade_id` int(11) NOT NULL auto_increment,
`grade_desc` text NOT NULL,
`careers_career_id` int(11) NOT NULL,
PRIMARY KEY (`grade_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=87 ;
-- --------------------------------------------------------
Обзор моей теории за столами состоит в том, что каждая оценка связана с карьерой, и одна карьера может иметь много оценок, из которых один курс связан только с одним курсом, но пользователю может потребоваться пройти дополнительный курс. если тот, кого они выбирают, недостаточно аккредитован.
Итак, мой вопрос, как мне выбрать детали курса для курсов более высокого уровня, если пользователь выбирает курс низкого уровня,
например, пользователь хочет быть электриком, и у него есть 2-х классные оценки в школе, это означает, что он может пройти только курс уровня 2, это означает, что для завершения курса он должен пройти курс более высокого уровня. Мне нужно показать, какие другие курсы основаны на том факте, что они выбрали электрика и курс 2-го уровня. Стоит отметить, что курсы, требующие дополнительной работы, имеют поле «extra_needed», помеченное как «да».
Я не могу в прямом эфире или я не могу понять, как получить правильные данные, я попробовал следующее,
SELECT *
FROM `course` , `grades` , `careers`
WHERE `course`.`extra_needed` IS NULL
AND `grades`.`grade_id` = `careers`.`career_id`
AND `careers`.`career_id` =6
однако это возвращает 59 строк данных, где, как и должно быть, возвращаются 2 строки данных, другая - к строкам данных, которые пользователь может выбрать, если он выберет другой выбор классов.