MySQL是一個常用的關系型數據庫管理系統,它支持多表關聯查詢和插入操作。在多表關聯插入數據時,我們需要使用JOIN語句來連接多張表。
假設我們有兩個表:學生表和班級表。學生表包含學生ID、姓名、性別和所屬班級ID等字段,班級表包含班級ID和班級名稱等字段。
CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, `gender` varchar(10) DEFAULT NULL, `class_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB; CREATE TABLE `class` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB;
現在要插入一條學生記錄,此學生所屬班級的名稱為"一年級一班"。
我們可以使用如下的SQL語句來插入數據:
INSERT INTO student (name, gender, class_id) SELECT '張三', '男', class.id FROM class WHERE class.name = '一年級一班';
代碼說明:
- INSERT INTO student (name, gender, class_id):向學生表中插入數據,要插入的字段為name、gender和class_id。
- SELECT '張三', '男', class.id:查詢語句,將學生姓名和性別固定為'張三'和'男',班級ID從班級表中獲取。
- FROM class:查詢語句的數據來源是班級表。
- WHERE class.name = '一年級一班':查詢條件,只查詢班級名稱為"一年級一班"的記錄。
這樣,就可以將一條新的學生記錄插入到學生表中,并且關聯到指定班級。