比如說我有兩張表,一張表是學生表,一張表是班級表,班級表對學生表是一對多的關係。建表語句如下:
create table class
(id int identity(1,1) primary key,
year int,
name varchar(50));
create table student
(id int identity(1,1) primary key,
classid int foreign key(classid) references class(id),
name varchar(50));
其中class是班級表,student是學生表
插入資料如下:
insert into class(year,name)
values(2017,'三年一班'),
(2017,'三年二班'),
(2017,'三年三班'),
(2017,'三年四班')
insert into student(classid,name)
values(1,'趙一'),
(2,'錢二'),
(2,'孫三'),
(3,'李四'),
(3,'周五'),
(3,'吳六'),
(3,'鄭七'),
(2,'王九')
插入後的結果如圖:
然後需要獲得每個班級的人數,sql語句如下:
select a.*,(select count(1) from student b where b.classid = a.id) as count from class a
查詢結果為:
就獲得了每個班的人數
乙個表寫給另乙個表的情書
親愛的mrs tablemm 每次你微笑的看著我,都會引發使我心跳加速的觸發器,我發現自己已深深地愛上了你,無法逃避,因為我們在同乙個database裡。經過我長期的查詢分 析,對你表結構的了解也越來越清晰,你溫柔美麗,高雅賢淑,簡直就是我心目中的bcd。我多想join你,但找不到合適的id.if你...
mysql 查詢在乙個表而不在另乙個表中的資料
a b兩表,找出id欄位中,存在a表,但是不存在b表的資料。a表總共13w資料,去重後大約3w條資料,b表有2w條資料 方法一使用 not in 容易理解,效率低 執行時間為 1.395秒 select distinct a.id from a where a.id not in select id...
用乙個表去更新另乙個表
朋友今天問我乙個問題 有兩張資料表 bureau area code 和 county code,我想用town code擷取前6位去和county code擷取前6位查詢,查到對應的county name該咋寫?下面先是兩張表結構 1 create table bureau area code 2...