SQLZOO - JOIN笔记(一)

JOIN 表联结

这次练习处理的是两个以上表格数据,来自 2012 年波兰和乌克兰联合举办的欧足联男足锦标赛的所有比赛和进球的记录。对应数据的 mysql 版本传送门: http://sqlzoo.net/euro2012.sql

知识点:SUM /COUNT/

Aggregates

1.统计世界总人口

例子:查询——所有姓式是「Bender」的球员的所有进球记录。

SELECT * FROM goal 
  WHERE player LIKE '%Bender'

* 指的是列出表格的所有列,更简洁地语法代替——matchid, teamid, player, gtime

练习:查询—— 德国队的所有进球队员及匹配的比赛 id

SELECT matchid, player FROM goal 
  WHERE teamid = 'GER'

根据之前的查询,我们知道,「Lars Bender」在 id 为 1012 的比赛中进球。
查询:这个比赛的对阵双方是什么球队?

SELECT id,stadium,team1,team2
FROM game
WHERE id='1012'

3.JOIN

FROM:从 game 表合并,合并过来的表是 goal
ON:根据哪一行 game表是根据 goal 的哪一行来合并
更具体的写法是game.id=goal.matchid

查询:德国每个进球所对应的球员、球队 id、体育场和比赛日期。

SELECT player, teamid, stadium, mdate
FROM game JOIN goal ON (id=matchid) 
WHERE teamid='GER'

查询:以「Mario 」为名字开头的每个进球球员所对应的球员&比赛队伍

SELECT team1, team2, player
FROM game JOIN goal ON (id=matchid) 
WHERE player LIKE 'Mario%'
SELECT player, teamid ,coach, gtime
FROM goal JOIN eteam on teamid=id
WHERE gtime<=10
SELECT mdate, teamname
FROM game JOIN eteam ON (team1=eteam.id)
WHERE coach='Fernando Santos'
SELECT player
FROM game JOIN goal ON(id=matchid)
WHERE stadium='National Stadium, Warsaw'

以下是更难的问题:

SELECT DISTINCT(player)
FROM game JOIN goal ON (matchid = id) 
WHERE (team1='GER' OR team2='GER')
AND teamid != 'GER'
SELECT teamname, COUNT(player)
FROM eteam JOIN goal ON (id=teamid)
GROUP BY teamname
SELECT stadium, COUNT(player)
FROM game JOIN goal ON (id=matchid)
GROUP BY stadium
SELECT stadium, COUNT(player)
FROM game JOIN goal ON (id=matchid)
GROUP BY stadium
SELECT matchid,mdate,COUNT(teamid)
FROM game JOIN goal ON (matchid = id)
WHERE (teamid='GER')
GROUP BY matchid,mdate

知识点:CASE

CASE语法能够让你根据不同的条件,返回不同的值。
如果没有匹配的条件,也没有ELSE,将会返回RETURN

  CASE WHEN condition1 THEN value1 
       WHEN condition2 THEN value2  
       ELSE def_value 
  END

https://sqlzoo.net/wiki/CASE

SELECT matchid,mdate,COUNT(teamid)
FROM game JOIN goal ON (matchid = id)
WHERE (teamid='GER')
GROUP BY matchid,mdate
SELECT name, population
      ,CASE WHEN population<1000000 
            THEN 'small'
            WHEN population<10000000 
            THEN 'medium'
            ELSE 'large'
       END
  FROM bbc
SELECT mdate,
  team1,
  CASE WHEN teamid=team1 THEN 1 ELSE 0 END score1
  FROM game JOIN goal ON matchid = id
SELECT stadium, COUNT(player)
FROM game JOIN goal ON (id=matchid)
GROUP BY stadium

https://sqlzoo.net/wiki/JOIN_Quiz

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容

  • --- layout: post title: "如果有人问你关系型数据库的原理,叫他看这篇文章(转)" date...
    蓝坠星阅读 780评论 0 3
  • http://sqlzoo.net/wiki/The_JOIN_operation/zh Game (id , m...
    葵小ci阅读 1,968评论 1 0
  • 2017/3/14 RDBMS:关系型数据库管理系统 关系模型独立于语言 SQL有几种不同类型的语言:数据定义语言...
    ancherl阅读 1,605评论 0 6
  • “这大半夜鬼哭狼嚎的,觉也睡不安生!”傻子的嫂子骂骂咧咧的推门出来,朝院子里泼了一盆脏水,转身回了屋里,再没露头...
    空心木阅读 608评论 2 3
  • *健康:本周微信运动步数无超过1万步。瑜伽3次。 记录早餐图片7天 *家庭:基本保证每天和妈妈通电话, 分享各种生...
    虾虾说阅读 80评论 0 2