[我需要帮助。我有2个数据库(学生和学科)。
学生数据库A
CREATE TABLE `students` (
`student_id` int(50) NOT NULL,
`student_name` varchar(100) NOT NULL,
`father_name` varchar(100) NOT NULL,
`class` varchar(10) NOT NULL,
`subject_group` varchar(25) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
------------------------------------------------------
Database B for subjects
CREATE TABLE `subjects` (
`subject_id` int(10) NOT NULL,
`student_id` int(50) NOT NULL,
`subject_name` varchar(25) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
如果我在Pry 4中有10个学生,我如何一次为所有小学4年级的学生注册数学。请使用PHP / Mysqli
您可以进行INSERT/SELECT
:
INSERT INTO subjects (subject_id, student_id, subject_name)
SELECT <math_id>, student_id, 'math'
FROM students st
WHERE class = 'Pry4' -- Get all students in this class
如果要基于其ID添加类,只需添加JOIN
:
INSERT INTO subjects (subject_id, student_id, subject_name)
SELECT sb.subject_id, st.student_id, sb.subject_name
FROM students st
CROSS JOIN subjects sb
WHERE st.class = 'Pry4' -- Get all students in this class
AND sb.subject_id = <math_id> -- Get subject info
这假设每个主题一行。