首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >sql查询:显示足球和网球运动员的名字

sql查询:显示足球和网球运动员的名字
EN

Stack Overflow用户
提问于 2011-05-11 01:11:07
回答 2查看 327关注 0票数 0

我在mysql数据库中有3个表:PLAYERSSPORTSINTERESTS

PLAYERS表包含id和播放器名称(id,player_name)

数据示例:

代码语言:javascript
运行
复制
(1,David) 
(2,Jack)
(3,Ron)
(4,Smith)

SPORTS表包含id和运动名称(id,sports_name)

数据示例:

代码语言:javascript
运行
复制
(1,Soccer)
(2,Tennis)
(3,Swimming) 

每个运动员可能对多个运动感兴趣,因此INTERESTS表具有运动员id和运动id。(player_id,sports_id)

数据示例:

代码语言:javascript
运行
复制
(1,2)
(1,3)
(2,3)

我想要显示球员的名字,那些踢足球和网球的人。

不是足球或网球,而是足球和网球。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-11 01:18:24

未经测试,但我认为这样的方法可能会起作用:

代码语言:javascript
运行
复制
SELECT
  player_name
FROM
  players
WHERE
  EXISTS (SELECT id FROM interests i WHERE i.player_id = players.id AND i.sports_id = 1)
  AND EXISTS (SELECT id FROM interests i WHERE i.player_id = players.id AND i.sports_id = 2)
票数 0
EN

Stack Overflow用户

发布于 2011-05-11 01:19:17

代码语言:javascript
运行
复制
Select P.id, P.player_name
From Players As P
    Join Interests As I
        On I.player_id = P.id
    Join Sports As S
        On S.id = I.sports_id
Where S.sports_name In('Tennis','Soccer')
Group By P.id, P.player_name
Having Count( Distinct S.sports_name ) = 2
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5953764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档