四表关联查询

有一个人员信息表user_info(user_id,name,dept_id,amt)、部门信息表dept_info(dept_id,dept_desc),人员功夫表user_kongfu(user_id,kf_id,main_kf_flag)和功夫信息代码表kf_info(kf_id,kf_desc)表中的数据分别如下:
人员信息表:
 

人员信息表
用户ID姓名部门ID个人资产(金额)
1001令狐冲70
1002任我行20
1003东方不败3528
1004风清阳110
1005左冷禅4230
1006冲虚350
1007岳不群1158
1008天门道人5-10


部门信息表:

部门信息表
部门ID部门名称
1华山
2黑木崖
3武当
4嵩山
5泰山


人员功夫表(1是主功夫):

人员功夫表
用户ID功夫ID主功夫标志
100111
100120
100140
100241
100331
100411
100551
100671
100720
100731
100860


功夫信息表:

功夫信息表
功夫ID功夫描述
1孤独九剑
2紫霞神功
3辟邪剑法
4吸星大法
5寒冰掌
6三脚猫
7太极剑法


其中,五岳剑派为华山、嵩山和泰山。
问:请给出SQL统计有主功夫没有次功夫的人员名单以及部门名称、功夫描述和个人资产。

 

注意审题!!!
请给出SQL统计有主功夫没有次功夫的人员名单以及部门名称、功夫描述和个人资产

使用sql语句的子查询方法,用not in 剔除含有次功夫的id就行了

这才是正确答案!!!(文末附上SQL创建代码,直接运行即可)

SELECT user_name,dept_desc,kf_desc,amt FROM
user_info INNER JOIN dept_info ON user_info.dept_id=dept_info.dept_id
INNER JOIN user_kongfu ON user_info.user_id=user_kongfu.user_id
INNER JOIN kf_info ON user_kongfu.main_kf_flag=kf_info.kf_id
WHERE user_kongfu.user_id
NOT IN (SELECT user_id FROM user_kongfu WHERE user_kongfu.main_kf_flag=0)

附上创建SQL的语句

CREATE DATABASE test3 CHARACTER SET UTF8;

CREATE TABLE user_info(user_id INT PRIMARY KEY,user_name VARCHAR(10),dept_id INT,amt DOUBLE);
CREATE TABLE dept_info(dept_id INT PRIMARY KEY,dept_desc VARCHAR(10));
CREATE TABLE user_kongfu(user_id INT,kf_id INT,main_kf_flag INT);
CREATE TABLE kf_info(kf_id INT,kf_desc VARCHAR(10));

INSERT INTO user_info(user_id,user_name,dept_id,amt) VALUES (1001,'令狐冲',1,70);
INSERT INTO user_info(user_id,user_name,dept_id,amt) VALUES (1002,'任我行',2,0);
INSERT INTO user_info(user_id,user_name,dept_id,amt) VALUES (1003,'东方不败',2,528);
INSERT INTO user_info(user_id,user_name,dept_id,amt) VALUES (1004,'风清阳',1,10);
INSERT INTO user_info(user_id,user_name,dept_id,amt) VALUES (1005,'左冷禅',4,230);
INSERT INTO user_info(user_id,user_name,dept_id,amt) VALUES (1006,'冲虚',3,50);
INSERT INTO user_info(user_id,user_name,dept_id,amt) VALUES (1007,'岳不群',1,158);
INSERT INTO user_info(user_id,user_name,dept_id,amt) VALUES (1008,'天门道人',5,-10);

INSERT INTO dept_info(dept_id,dept_desc) VALUES (1,'华山');
INSERT INTO dept_info(dept_id,dept_desc) VALUES (2,'黑木崖');
INSERT INTO dept_info(dept_id,dept_desc) VALUES (3,'武当');
INSERT INTO dept_info(dept_id,dept_desc) VALUES (4,'嵩山');
INSERT INTO dept_info(dept_id,dept_desc) VALUES (5,'泰山');


INSERT INTO user_kongfu(user_id,kf_id,main_kf_flag) VALUES (1001,1,1);
INSERT INTO user_kongfu(user_id,kf_id,main_kf_flag) VALUES (1001,2,0);
INSERT INTO user_kongfu(user_id,kf_id,main_kf_flag) VALUES (1001,4,0);
INSERT INTO user_kongfu(user_id,kf_id,main_kf_flag) VALUES (1002,4,1);
INSERT INTO user_kongfu(user_id,kf_id,main_kf_flag) VALUES (1003,3,1);
INSERT INTO user_kongfu(user_id,kf_id,main_kf_flag) VALUES (1004,1,1);
INSERT INTO user_kongfu(user_id,kf_id,main_kf_flag) VALUES (1005,5,1);
INSERT INTO user_kongfu(user_id,kf_id,main_kf_flag) VALUES (1006,7,1);
INSERT INTO user_kongfu(user_id,kf_id,main_kf_flag) VALUES (1007,2,0);
INSERT INTO user_kongfu(user_id,kf_id,main_kf_flag) VALUES (1007,3,1);
INSERT INTO user_kongfu(user_id,kf_id,main_kf_flag) VALUES (1008,6,0);

INSERT INTO kf_info(kf_id,kf_desc) VALUES (1,'独孤九剑');
INSERT INTO kf_info(kf_id,kf_desc) VALUES (2,'紫霞神功');
INSERT INTO kf_info(kf_id,kf_desc) VALUES (3,'辟邪剑法');
INSERT INTO kf_info(kf_id,kf_desc) VALUES (4,'吸星大法');
INSERT INTO kf_info(kf_id,kf_desc) VALUES (5,'寒冰掌');
INSERT INTO kf_info(kf_id,kf_desc) VALUES (6,'三角猫');
INSERT INTO kf_info(kf_id,kf_desc) VALUES (7,'太极剑法');
  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值