Saya menggunakan SQL Server. Saya telah menghabiskan banyak waktu untuk ini dan tidak dapat mengetahuinya.

Saya membuat basis data untuk ini, yang menunjukkan atlet mana atlet lain yang telah memilih untuk menang:

Ini meja atlet saya:

My database (athlete table)

Ini meja tim saya:

My database (team table)

Saya memiliki tabel terpisah untuk tim, dan atlet. (Atlet mencakup suara) Saya perlu kueri yang khusus untuk tabel bergabung sendiri ini.

Saya mencoba mencari pertanyaan untuk menunjukkan atlet mana yang tidak menerima suara oleh atlet lain. Saya telah mencoba beberapa hal dan jujur pada titik ini saya tidak tahu ke arah mana ini seharusnya. Terima kasih sebelumnya!

Edit: Jika ada yang membutuhkan jawaban ini di masa depan, ini adalah jawaban saya yang sudah selesai saya tahu (saya menambahkan concat untuk keperluan saya sendiri):

SELECT CONCAT(voter.athleteFirstName, ' ', voter.athleteLastName) AS [Did Not Recieve Any Votes]
FROM athlete AS voter LEFT JOIN athlete AS recipent ON voter.athleteID = recipent.votesforId
WHERE recipent.athleteId IS NULL
ORDER BY voter.athleteFirstName
0
Rachel D 2 April 2021, 21:27

3 jawaban

Jawaban Terbaik

Jika ada yang membutuhkan jawaban ini di masa depan, ini adalah jawaban saya yang sudah selesai saya tahu (saya menambahkan concat untuk keperluan saya sendiri):

SELECT CONCAT(voter.athleteFirstName, ' ', voter.athleteLastName) AS [Did Not 
Recieve Any Votes]
FROM athlete AS voter LEFT JOIN athlete AS recipent ON voter.athleteID = 
recipent.votesforId
WHERE recipent.athleteId IS NULL
ORDER BY voter.athleteFirstName
0
Rachel D 5 April 2021, 04:19

Anda ingin mendapatkan atlet yang tidak memiliki ID mereka di kolom suara.

SELECT *
FROM athlete
WHERE athleteId NOT IN (SELECT DISTINCT votesForId FROM athlete)
0
kaladin_storm 2 April 2021, 18:32

Agaknya Anda memiliki meja atlet dan yang terpisah untuk suara. Maka Anda akan menggunakan:

select a.*
from athletes a
where not exists (select 1
                  from votes v
                  where v.votesForId = a.athleteId
                 );

Tentu saja, ini bisa jadi satu meja, tetapi akan lebih masuk akal bagi saya jika ada dua.

0
Gordon Linoff 2 April 2021, 18:30