请问一个多对多的SQL查询-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

请问一个多对多的SQL查询

2016-07-01 15:37:50 1917 1

表1、programmer (程序员表)
表2、language (编程语言表)
表3、programmer_language_map (映射表,即某个程序员会哪些语言)

查询出除了1,2,3以外不会其他编程语言的程序员集合,也就是符合条件的程序员可以只会编程语言1,可以会1/2/3三个语言,也可以什么都不会,但是不能会编程语言4(即超出1/2/3范围)。

这种需求能用一条SQL查询语句实现吗?

CREATE TABLE programmer (
id int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id)
)
INSERT INTO programmer VALUES ('1');
INSERT INTO programmer VALUES ('2');
INSERT INTO programmer VALUES ('3');
INSERT INTO programmer VALUES ('4');
INSERT INTO programmer VALUES ('5');
CREATE TABLE language (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255) DEFAULT NULL,
PRIMARY KEY (id)
)
INSERT INTO language VALUES ('1', 'Java');
INSERT INTO language VALUES ('2', 'C#');
INSERT INTO language VALUES ('3', 'C++');
INSERT INTO language VALUES ('4', 'JavaScript');
INSERT INTO language VALUES ('5', 'Python');
CREATE TABLE programmer_language_map (
p_id int(11) NOT NULL,
l_id int(11) NOT NULL,
PRIMARY KEY (p_id,l_id)
)
INSERT INTO programmer_language_map VALUES ('1', '3');
INSERT INTO programmer_language_map VALUES ('1', '4');
INSERT INTO programmer_language_map VALUES ('2', '3');
表结构和初始的数据贴上。

需要的查询结果是programmer中的2/3/4/5。

取消 提交回答
全部回答(1)
相关问答

0

回答

PageHelper在大数据量下如何提高SQL查询效率?

2021-10-26 14:22:15 569浏览量 回答数 0

3

回答

想问下,sql如何提高查询效率?

2021-10-11 16:43:57 723浏览量 回答数 3

2

回答

一般在写SQL时需要注意哪些问题,可以提高查询的效率?

2020-01-10 19:19:33 1040浏览量 回答数 2

1

回答

mysql- sql查询 效率正常吗

2016-06-15 15:17:38 1916浏览量 回答数 1

1

回答

生成的sql带有distict导致查询效率下降

2016-02-13 11:45:28 2367浏览量 回答数 1

0

回答

SQL server日期转换,转换失败的

2019-12-06 21:30:51 1196浏览量 回答数 0

0

回答

SQL Server实例管理页面简介

2017-10-17 17:13:45 1397浏览量 回答数 0

1

回答

SQLServer性能数据解析

2017-06-23 11:00:16 3812浏览量 回答数 1

2

回答

SQL SERVER 查询都有哪些权限

2016-06-08 15:37:06 2894浏览量 回答数 2

1

回答

SQL Server转 MySQL的方法或工具

2016-02-14 15:21:07 2068浏览量 回答数 1
+关注
文章
问答
问答排行榜
最热
最新
相关电子书
更多
时序数据库TSDB新功能 - 如何用SQL进行时序查询
立即下载
用SQL做数据分析
立即下载
GeoMesa on Spark SQL
立即下载