我对SQL的使用有点陌生,我正在使用不同的场景。
我的例子如下:
假设我需要一个招生系统。我按照以下方式创建了student表:
create table student (net_id char(10) , first_name char(20) ,
last_name char(20) , Major char(10) , ISGraduate BOOLEAN,
primary key (net_id)其中,isgraduate布尔变量衡量学生是否是研究生。
我还有一个实体是professor,如下所示:
create table professor (net_id char(10) , first_name char(20)
, last_name char(20) , Rank char(10) , department char(20) ,
primary key (net_id))那么,如果我想模拟这种关系:一位教授可以为许多研究生提供建议,那么我可能需要创建一个新的表格adviosry,但是在那里,我如何只过滤研究生呢?
任何帮助都会很好。
谢谢。
发布于 2020-02-06 19:08:28
您可以像这样创建表advisory:
create table advisory (
professor_id char(10),
student_id char(10),
ISGraduate BOOLEAN default 1,
foreign key (professor_id) references professor(net_id),
foreign key (student_id, ISGraduate) references student(net_id, ISGraduate),
primary key (professor_id, student_id)
); 并在表unique中添加net_id和ISGraduate列的net_id索引。
create table student (
net_id char(10),
first_name char(20),
last_name char(20),
Major char(10),
ISGraduate BOOLEAN,
unique(net_id, ISGraduate),
primary key (net_id)
);见演示。
还请执行以下操作,确保foreign_keys标志是打开的:
PRAGMA foreign_keys = ON;让研究生们加入到student中来
select s.*
from student s inner join advisory a
on s.net_id = a.student_idhttps://stackoverflow.com/questions/60100795
复制相似问题