Sambungan dalaman ke jadual yang sama menggunakan kedudukan penapis
P粉278379495
P粉278379495 2024-02-03 18:57:36
0
2
468

Terima kasih kerana membantu saya, saya masih belajar SQL. Saya mempunyai jadual utama yang dipanggil JEDI dan saya cuba mendapatkan maklumat khusus tentang menggunakan syarat Inner JOIN dan Where. Secara khusus, saya ingin mendapatkan bilangan JEDI yang melawat planet tertentu antara tarikh tertentu dan tahap mereka.

Saya kemudiannya ingin menapis menggunakan Inner JOIN pada jadual yang sama dan hanya menunjukkan kepada saya keputusan untuk JEDI yang mempunyai lebih daripada 1 padawan di planet tersebut. Saya rasa syarat kedua membuat saya pergi. Saya telah menampal kod yang saya gunakan dan jadual data sampel

Hasil saya sepatutnya hanya 2, Master Obi-Wan adalah satu-satunya yang memenuhi kriteria

SELECT COUNT(jedi.jedi_id),jedi.rank_id
FROM jedi
WHERE jedi.date >='2022-01-01' AND jedi.date <='2022-06-31' AND jedi.planet='Tatoine'
INNER JOIN jedi ON jedi.jedi_id WHERE COUNT(jedi.padawan)>=2
GROUP BY jedi.rank_id
P粉278379495
P粉278379495

membalas semua(2)
P粉878510551

Mula-mula, anda perlu mengumpulkan lajur dan menggunakan HAVING COUNT untuk mengira nilai pendua.

SELECT COUNT(jedi.jedi_id),jedi.rank_id
FROM jedi
WHERE jedi.date BETWEEN '2022-01-01' AND '2022-06-31' 
                                     AND jedi.planet='Tatoine'
GROUP BY jedi.jedi_id, jedi.rank_id
HAVING COUNT(jedi.jedi_id) > 1

Nota: Ciri ini hanya berfungsi untuk setiap jedi_id 具有唯一值 jedi.padawan. Pertanyaan ini sesuai untuk senario ini.

Walau bagaimanapun, anda boleh mengira jedi.padawan 的条件来改进查询,以便每个 jedi.jedi_idjedi.padawan nilai/kod> unik dengan menambah satu lagi yang tidak akan disertakan

SELECT COUNT(jedi.jedi_id),jedi.rank_id
FROM jedi
WHERE jedi.date BETWEEN '2022-01-01' AND '2022-06-31' 
                                     AND jedi.planet='Tatoine'
GROUP BY jedi.jedi_id, jedi.rank_id
HAVING COUNT(jedi.jedi_id) > 1 AND
       COUNT (DISTINCT jedi.padawan) > 1
P粉248602298

Anda boleh menggantikan ini dengan mesti DALAM JOIN jedi DI jedi.jedi_id WHERE COUNT(jedi.padawan)>=2

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan