有如下数据表
create table test (NAME varchar(20) not null, HOBBY varchar(20) not null);
insert into test values('Adam','basketball');
insert into test values('Bill','basketball');
insert into test values('Bill','football');
insert into test values('Cyper','basketball');
insert into test values('Cyper','badminton');
insert into test values('David','basketball');
insert into test values('David','badminton');
insert into test values('David','table tennis');
使用SQL语句查出hobby即包含basketball,又包含badminton的name所在的行:
即第5, 6 ,7 ,8行
我想了几种SQL语句。不知道还没有有别的。
--(1)with
WITH
NAME_MATCHES AS
(SELECT NAME
FROM TEST
WHERE HOBBY IN ('basketball', 'badminton')
GROUP BY NAME
HAVING COUNT(NAME) = 2)
SELECT T.*
FROM TEST AS T, NAME_MATCHES AS NM
WHERE T.NAME = NM.NAME;
--(2)exists and exists
SELECT *
FROM TEST AS T1
WHERE EXISTS (SELECT *
FROM TEST AS T2
WHERE T2.NAME = T1.NAME AND HOBBY = 'basketball')
AND EXISTS (SELECT *
FROM TEST AS T3
WHERE T3.NAME = T1.NAME AND HOBBY = 'badminton');
--(3)self join
SELECT T1.*
FROM TEST AS T1, TEST AS T2, TEST AS T3
WHERE T1.NAME = T2.NAME AND T1.NAME = T3.NAME AND T2.HOBBY = 'basketball'
AND T3.HOBBY = 'badminton';
第1种是我目前采纳的,稍微有点长
第3种最简单,可是扩展性不好,当hobby增多时,参数不好处理。
欢迎讨论(各种数据库都可以)
分享到:
相关推荐
这个压缩包文件“考试常考的SQL题目---无私奉献了!”显然是为准备SQL相关考试或提升技能的人们准备的一份宝贵资料。下面我们将深入探讨一些常见的SQL知识点,这些知识点通常会在考试中出现,并且对于理解和操作...
中兴SQL题目中提到的第一个查询语句是为了找出每个部门中月工资最高的职工号。这个查询使用了子查询,对于外层的每个职工记录,都需要对内层的职工表进行检索,这可能导致较高的计算开销,特别是当职工表非常大时。 ...
标签中的“强网杯SQL题目复现”再次强调这是为了解决特定竞赛中的SQL挑战。 【压缩包子文件的文件名称列表】: 1. README.md:这是一个Markdown格式的文档,通常包含项目简介、使用说明、安装步骤等内容,对于理解...
【标题】:“火车销售系统题目sql题目” 在IT领域,尤其是数据库管理和数据分析中,SQL(Structured Query Language)是不可或缺的工具。"火车销售系统题目sql题目"这一主题聚焦于使用SQL来解决与火车销售系统相关...
本压缩包"补充的sql题目.rar"包含了多个与SQL相关的文件,让我们逐一解析这些文件并探讨其中可能涵盖的SQL知识点。 首先,"补充sql题目.doc"很可能是一个文档,包含了各种SQL题目,用于测试和提升用户对SQL的掌握...
"PostgreSQL DBA认证 PGCE-E-092-中级SQL题目" PostgreSQL DBA认证 PGCE-E-092-中级SQL题目 PostgreSQL DBA认证PGCE-E-092-中级SQL题目是一个测试SQL掌握程度的题目,涵盖了PostgreSQL数据库管理系统的各种知识点...
针对"sql题目答案"这个主题,我们可以探讨一些常见的SQL知识点。 首先,基础的SQL语法包括SELECT语句,用于从数据库中检索数据。例如,如果我们有一个名为"dsdfsd.sql"的文件,可能包含了这样的查询: ```sql ...
这是一本关于sqi题目的文档,相关的有问题,有答案,有一些讲解。希望能够对您有所帮助,谢谢。
在SQL的世界里,掌握经典题目能有效提升你的技能水平,特别是当你面对的是“超级经典的SQL题目”这样的资源时。这个压缩包显然包含了丰富的学习材料,旨在帮助你全面理解和运用SQL Server 2005的核心概念。以下是...
在面试中,SQL题目经常被用来评估应聘者对数据库操作的理解和熟练程度。本文将深入探讨SQL的基础概念,常见查询技巧以及一些面试中可能遇到的问题。 一、SQL基础 1. 数据库创建与删除:SQL允许创建(CREATE ...
以下是对"程序员必备的SQL题目.zip"这个压缩包文件中可能包含的知识点的详细解释。 1. SQL基础概念: - 数据库(Database):存储数据的容器,如MySQL、PostgreSQL、Oracle等。 - 表(Table):数据库中的数据...
整理mysql、oracle数据库相关 笔试面试题,主要为了应对面试过程中遇到的sql题目 、.学生表 Student(SID,Sname,Sage,Ssex) --SID 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 2.课程表 Course(CID,...
13道SQL题目,童鞋们下载后先别看答案自己试着做一下,看ok不?
在这个“sql题目答案”主题中,我们将深入探讨一些常见的SQL知识点。 首先,我们要理解SQL的基本查询语句——SELECT。SELECT语句用于从一个或多个表中获取数据,例如: ```sql SELECT column1, column2 FROM table...
### SQL题目解析与解答 #### 题一:多表联接查询 **题目描述**: 根据提供的三个表(`zhangh_record`、`zhangh_order`、`zhangh_team`),构建一个查询,展示每个员工所在团队名称(`Team_name`)、员工编号(`...
在IT行业中,数据库是至关重要的组成部分,特别是在存储和管理数据方面。MySQL和Oracle是两种广泛使用的数据库管理系统(DBMS),...不断地学习和练习SQL题目,不仅可以加深对数据库的理解,也有助于在面试中脱颖而出。
根据给定文件的信息,我们可以提炼出两个主要的SQL问题,并对这两个问题进行详细的解析与解答。 ### SQL问题一:查询每位学生及其前一位学生的成绩 #### 题目描述: 假设我们有一个表`ѧɼֶ`,该表记录了学生的...