Saitama adlı üyeden alıntı: mesajı görüntüle
ID:Employee 

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| id          | int     |
| name        | varchar |
| salary      | int     |
| managerId   | int     |
+-------------+---------+
Id tablonun birincil anahtarıdır. Tablonun her satırı çalışanın kimliğini, adını, maaşını ve yöneticinin kimliğini temsil eder.
Yöneticilerinden daha fazla kazanan çalışanları bulmak için bir SQL sorgusu yazın.
herhangi bir sipariş sonuç tablosunu döndürmek için kullanılır.

İkincisi, konu gereksinimleri

Örneklem


Gir: 
Employee ID:
+----+-------+--------+-----------+
| id | name  | salary | managerId |
+----+-------+--------+-----------+
| 1  | Joe   | 70000  | 3         |
| 2  | Henry | 80000  | 4         |
| 3  | Sam   | 60000  | Null      |
| 4  | Max   | 90000  | Null      |
+----+-------+--------+-----------+
çıktı: 
+----------+
| Employee |
+----------+
| Joe      |
+----------+
Açıklama : Joe, yöneticiden daha fazla kazanan tek çalışandır.

ziyaret etmek


1. Sorgulama

2. 10~25dk kullanılması tavsiye edilir.
3. Problem Analizi

1. Alt sorgular


Bir alt sorgu, sürekli aşağı doğru bir uzantıdır, çünkü her seferinde üzerinden geçilmesi gerekir, bu nedenle daha az veri ve daha az tablo içeren durumlar için uygundur.
Bu soru için önce veri tabanındaki veriler arasında geziniyor ve yöneticinin maaşını çalışanın maaşıyla karşılaştırıyoruz.

2. Bağlantı sorgusu


Birleştirme sorgusu, tabloları önceden bir tabloda birleştirmek ve ardından koşulları karşılayan kayıtları tablodan filtrelemek içindir. Sorguyu aşağıdaki gibi birleştiren tablonun parçası:

Burada sadece iki şartlı yargı eklememiz gerekiyor.Biri yöneticinin kimlik numarasının ilk kimlik numarasına eşit olması, ikincisi ise çalışanın maaşının yöneticininkinden fazla olması gerektiğidir.
Bu iki koşulu karşılayan kayıtları filtreleyin ve adlarını yazdırın.

3. optimizasyona katılın


Bağlantıyı optimize etmek için nerede ve doğrudan birleştirmeyi kullanabiliriz.Koşullar hala yukarıda belirtilen iki koşuldur, ancak daha sonra kullanılırlar.
Dördüncüsü, koda dökme

1. Alt sorgular


select e.name as Employee
from Employee as e
where salary>
(select salary  from Employee where id=e.managerId)

2. Bağlantı sorgusu


select a.name as Employee
from Employee as a,Employee as b
where a.managerId=b.id and a.salary>b.salary

3. optimizasyona katılın


select a.name as Employee
from Employee as a join Employee as b
on a.managerId=b.id  and a.salary>b.salary
yararlı bir konu olmuş, teşekkürler...