SQLクエリ - 演習についての問合せ

LeetCodeによって次の演習:https://leetcode-cn.com/problemset/database/は、興味を持っている上記の質問ブラシに行くことができます

 

演習1:管理職より収入の従業員

 

 分析:

従業員Id及びマネージャーID管理者は、テーブルは、従業員がygbテーブルを使用するために、2つのテーブルとして見ることができる、自己結合を使用して、同じテーブルのテーブルJLBのマネージャーであるため、SQL自己結合クエリを使用します。

クエリ考え方は次のとおりです。同じID記録従業員と管理職テーブルマネージャーIDテーブルを選択し、次にこれらのレコードでは、従業員テーブルをスクリーニングは、管理者の給与給与テーブルのレコードよりも大きいです

SELECT  *   FROM社員ygb、従業員のJLB WHERE ygb.ManagerId = jlb.Id

SELECT  *   FROM社員ygb、従業員のJLB ygb.ManagerId = jlb.Id  ygb.Salary > jlb.Salary

SELECT ygb.name AS社員FROM社員ygb、従業員のJLB WHERE ygb.ManagerId = jlb.Id  ygb.Salary > jlb.Salary

 

演習2:重複した電子メールを削除します

分析:
重複したメールボックスを識別するために、より多くの最初の使用は、独自のテーブルで、クエリを自己結合し、彼女がいました

SELECT  *  FROM人物P1、P2人物

二つのテーブルが、これは同じエピトープの2つのデカルト積を与え、即ち、合成結果

 あなたは、それぞれP1を照会することができます。*およびP2。*

 その後、再チェック

SELECT P1。*  FROM人物P1、P2のPerson p1.Email = p2.Email  p1.Id > p2.Id

次に、重複データを削除することができます

DELETE P1を。*  FROM人物P1、P2のPerson p1.Email = p2.Email  p1.Id > p2.Id

 


2019年9月4日22時47分00秒

おすすめ

転載: www.cnblogs.com/hanmk/p/11462071.html