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秒