国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

mysql - 一個sql查詢的題目,望路過大神看下

瀏覽:124日期:2022-06-17 11:59:44

問題描述

mysql - 一個sql查詢的題目,望路過大神看下

1.上圖兩個表,要求找出掌握Skills中全部3個技能的員工,即神崎和相田,要求用mysql的語句實現

2.剛學sql,不是很會,想了好久

3.下面是書里面用sql server寫的,我也不是很理解,另外mysql中沒有except

SELECT DISTINCT emp FROM EmpSkills ES1 WHERE NOT EXISTS(SELECT skill FROM Skills EXCEPT SELECT skill FROM EmpSkills ES2 WHERE ES1.emp = ES2.emp);

問題解答

回答1:

SELECT DISTINCT emp FROM EmpSkills s WHERE NOT exists(SELECT skill FROM skills WHERE skill NOT IN (SELECT skill FROM EmpSkills Es2 WHERE Es2.emp = s.emp));

對應的數據替換一下就可以了.

回答2:

那段SQL所表達的意思大概是:

如果一個員工他所掌握的那些skill,從Skills列表里刨除后列表為空了,那么選出這個員工。

注意except后面是這個員工掌握的所有skill。

回答3:

1.無論是SQL書籍,還是網上的資料,都喜歡寫很長、很復雜的SQL語句,這樣做其實是不對的。因為過長、過于復雜的SQL語句,不利于結構設計、代碼書寫、調試、維護、項目移交等。

2.正確的思路,應該是保證每條語句盡量簡單,長度盡量少。多使用變量、表變量、臨時表來降低復雜度,多使用函數、存儲過程、視圖來增加復用性與減少耦合及代碼冗余。

回答4:

個人疑問:題目描述是不是不太準確?要求找出會Skills中3個技能的員工 如果存在某員工不僅掌握這3個技能還掌握了其他技能這樣的員工會被書中的sql語句篩選出去或者題目是不是應該修改為 掌握并只掌握skills表中所有技能的員工?

回答5:

問題的核心是,如何在SQL中表示集合A的所有成員都在集合B中。用的是否定之否定的邏輯:不存在集合A的成員不在集合B中

集合A:Skills表的所有記錄集合B: EmpSkills表是每個員工對應的記錄

SQL的邏輯變類的過程:1、找出EmpSkill的所有員工

去除每個員工在EmpSkill表中對應的skill

按照上面所說的“否定之否定”條件,判斷員工是否擁有Skills表中的所有skill

另外一個思路,先構建出員工、技能對矩陣,然后看是否在EmpSkill表中,如果存在的話說明技能不全,作為排除條件,sql大概是這樣的:

select distinct empfrom EmpSkillswhere emp not in ( select distinct t1.emp from (select distinct emp from EmpSkills) t1 inner join Skills t2 where not exists (select 1 from EmpSkills t3 where t3.emp = t1.emp and t2.skill))回答6:

SELECT a.emp,SUM((CASE WHEN a.skill=’Oracle’ THEN 1 ELSE 0 END) + (CASE WHEN a.skill=’UNIX’ THEN 1 ELSE 0 END) + (CASE WHEN a.skill=’Java’ THEN 1 ELSE 0 END)) AS count FROM empskills a JOIN skills b ON a.skill = b.skill GROUP BY a.emp HAVING count = 3

主站蜘蛛池模板: 日韩一区二区三区在线播放 | 日本一级特黄在线播放 | 欧美日韩国产在线人成dvd | 香港国产特级一级毛片 | 日本精品一区二区三区在线视频一 | 欧美成人自拍视频 | 蘑菇午夜三级 | 成年人在线观看网站 | 国产成人ay手机在线观看 | 国产亚洲精品成人婷婷久久小说 | 日韩久久一级毛片 | 国产亚洲欧美日韩在线观看不卡 | 久久久久在线视频 | 久久99热久久精品91 | 日韩特级片 | 亚洲综合区 | 六月丁香婷婷天天在线 | 久草久草 | 国内精品视频成人一区二区 | 97国内免费久久久久久久久久 | 久久国产香蕉 | 国产精品久久久久久久久久久久 | 99久久精品免费视频 | 亚洲视频免 | 亚洲精品国产精品国自产 | 国产伦久视频免费观看视频 | 欧美性生交大片免费看 | 91久久国产视频 | 一级特黄aaa大片在线观看 | 精品久久久久国产 | 在线播放国产真实女同事 | 欧美高清免费一级在线 | 一级在线免费视频 | 日产国产精品久久久久久 | 亚洲一区二区欧美 | 欧美成人做性视频在线播放 | 99精品欧美一区二区三区 | 午夜性刺激免费视频 | 韩国一大片a毛片 | 国产精品视频久久久 | 亚洲精品欧美日韩 |