sql-server - 如何将多个表中的属性分组到一个表中
问题描述
我有这两张桌子。
CREATE TABLE doctor(
code_doctor char(5) primary key not null,
name varchar(30) not null,
gender char(1) check(gender='L' or gender='P'),
address varchar(30),
salary numeric
)
CREATE TABLE schedule_doctor(
code_schedule char(5) primary key not null,
day varchar(10) CHECK (day IN ('monday', 'tuesday', 'wednesday', 'thursday', 'friday','saturday')),
shift varchar(10) CHECK (shift='morning' or shift='evening'),
code_doctor char(5) foreign key references doctor(code_doctor) on update cascade on delete
cascade
)
如何在一张表中显示医生姓名、日期、班次?
解决方案
您可以使用join
, AJOIN
子句用于组合来自两个或多个表的行
SELECT d.NAME AS DoctorName,
sd.DAY,
sd.shift
FROM doctor d
INNER JOIN schedule_doctor sd
ON d.code_doctor = sd.code_doctor
或者LEFT JOIN关键字返回左表中的所有记录doctor
,以及右表中匹配的记录schedule_doctor
。如果没有匹配,则结果NULL
来自右侧。
SELECT d.NAME AS DoctorName,
sd.DAY,
sd.shift
FROM doctor d
LEFT JOIN schedule_doctor sd
ON d.code_doctor = sd.code_doctor
推荐阅读
- reactjs - 使用 Electron 从 React Component 打开文件对话框
- c# - winforms 选项卡不适合窗口大小
- php - 排除由作曲家在 Symfony 3.4 应用程序中自动加载的数据夹具
- amazon-web-services - AWS AmazonSNSClient 实例无法执行任何工作
- google-maps - Flutter - 如何在没有 map_view 的情况下集成谷歌地图
- reactjs - 反应中的 Onsubmit(e,..,index) 形式
- python - Pandas按B列排序的A列排序排名
- unity3d - 在 Unity 2018.1.6f1 Personal 上导入 HoloToolkit-Unity-2017.4.2.0 时出错
- angular - 无订阅的行为主体自动更新值
- python - Python+Bokeh:如何在 Bokeh 的线图上为点分类明智地着色?