在MySQL中,對于兩個表進行加減操作,可以通過聯結查詢和聚合函數來實現。
首先,我們創建兩個表,一個是student表,一個是score表。
CREATE TABLE student ( id int NOT NULL AUTO_INCREMENT PRIMARY KEY, name varchar(255) NOT NULL, age int NOT NULL ); CREATE TABLE score ( id int NOT NULL AUTO_INCREMENT PRIMARY KEY, student_id int NOT NULL, course varchar(255) NOT NULL, score int NOT NULL, FOREIGN KEY (student_id) REFERENCES student(id) );
其中,student表包含學生的ID、姓名、年齡等信息,score表包含學生成績的ID、學生ID、課程名稱、成績等信息。
接下來,我們將在score表中新增一些數據,例如:
INSERT INTO score (student_id, course, score) VALUES (1, 'math', 90), (1, 'english', 85), (2, 'math', 95), (2, 'english', 80);
此時,score表的內容如下:
id student_id course score --------------------------------- 1 1 math 90 2 1 english 85 3 2 math 95 4 2 english 80
現在,我們需要計算每個學生的總成績。可以通過聯結查詢和聚合函數來實現。
SELECT student.id, student.name, SUM(score.score) AS total_score FROM student INNER JOIN score ON student.id = score.student_id GROUP BY student.id;
這條SQL語句會返回student表和score表聯結后,每個學生的ID、姓名以及總成績。
如果我們現在想要統計每個年齡段學生的總成績,可以在上面的查詢語句基礎上再加一個GROUP BY語句:
SELECT student.age, SUM(score.score) AS total_score FROM student INNER JOIN score ON student.id = score.student_id GROUP BY student.age;
這條SQL語句會返回各個年齡段學生的總成績。
上一篇如何理解css樣式表
下一篇mysql兩個表遞歸查詢