#mysql #sql
#mysql #sql
Вопрос:
sql-запрос выдает недопустимый номер ошибки
Запрос:-
select st.id ,st.name from student st
inner join course co on st.COURSE_FK = co.course_id
where(st.id="DV001" and co.course_id="1001");
Student table :-
id(String)
name(String)
course :-
course_id(String)
Комментарии:
1. что такое:param1 и:param2?
2. Вы используете именно этот код из Workbench? Это не сработает. Если это какое-либо подготовленное PHP-утверждение, пожалуйста, укажите полный PHP-код.
3. Просто предположение. st.id определяется как int?
4. Замените двойные кавычки одинарными кавычками.
5. sql-запрос выдает недопустимый номер ошибки , показывает полное и неизмененное сообщение об ошибке.
Ответ №1:
Таблица учащихся
CREATE TABLE `student` (
`id` varchar(255) NOT NULL,
`name` varchar(45) DEFAULT NULL,
`COURSE_FK` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `fk_student_1_idx` (`COURSE_FK`),
CONSTRAINT `fk_student_1` FOREIGN KEY (`COURSE_FK`) REFERENCES `course` (`course_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
Таблица курсов
CREATE TABLE `course` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(45) NOT NULL,
`course_id` varchar(45) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `course_id_UNIQUE` (`course_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
Данные
INSERT INTO `test`.`course` (`id`, `name`, `course_id`) VALUES (NULL, 'C1', 'C1');
INSERT INTO `test`.`course` (`id`, `name`, `course_id`) VALUES (NULL, 'C2', 'C2');
INSERT INTO `test`.`student` (`id`, `name`, `COURSE_FK`) VALUES ('S1', 'S1', 'C1');
INSERT INTO `test`.`student` (`id`, `name`, `COURSE_FK`) VALUES ('S2', 'S2', 'C2');
INSERT INTO `test`.`student` (`id`, `name`, `COURSE_FK`) VALUES ('S3', 'S3', 'C1');
Запрос, как вы указали
select st.id ,st.name from student st
inner join course co on st.COURSE_FK = co.course_id
where(st.id="S1" and co.course_id="C1");
Результат
# id, name
'S1', 'S1'
введите описание изображения здесь
———————————————————————————-
Вывод: когда вы ставите запрос, эта ошибка не появляется