Cara untuk mencari permainan video dengan penglibatan paling banyak pembangun (menggunakan pertanyaan SQL)
P粉768045522
P粉768045522 2023-09-04 16:18:24
0
1
587
<p>Andaikan kita mempunyai 3 jadual, iaitu permainan video, pembangun dan workson. </p> <p>Dalam jadual permainan video, kami mempunyai atribut berikut: </p> <ul> <li>videogameid (kunci utama)</li> <li>Tajuk</li> <li>Tahun</li> <li>genre</li> </ul> <p>Kemudian dalam jadual pembangun, kita ada: </p> <ul> <li>developerid (kunci utama)</li> <li>Nama</li> <li>jantina</li> </ul> <p>Kemudian dalam jadual workson, kita ada: </p> <ul> <li>videogameid (kunci utama dan asing)</li> <li>developerid (kunci utama dan asing)</li> </ul> <p>Percubaan kod saya: </p> <pre class="brush:php;toolbar:false;">SELECT MAX(videogameid) DARI (PILIH videogameid DARI workson KUMPULAN OLEH videogameid HAVING COUNT(DISTINCT developerid)>5 )permainan video_dengan_kebanyakan_pembangun;</pre> <p>Walau bagaimanapun, saya gagal mendapatkan semula jawapan dengan tajuk (terutamanya kerana saya tidak memilih tajuk), tetapi itu kerana saya nampaknya tidak dapat membuat sambungan. </p> <p>Edit: Kami mempunyai beberapa data sampel, dalam jadual permainan video: </p> <p>Sisipkan permainan video (id permainan video, tajuk, tahun, jenis)</p><p> NILAI (111,'World of Warcraft',2004,'MMORPG'); Sisipkan permainan video (id permainan video, tajuk, tahun, jenis) NILAI (112,'StarCraft II',2008,'RTS');</p> <p>Jadual pembangun mengandungi: </p> <p>Masukkan pembangun (ID pembangun, jantina, nama) nilai(98734,'M','Johnson'); Masukkan pembangun (ID pembangun, jantina, nama) nilai(98735,"F","Regina"); Masukkan pembangun (ID pembangun, jantina, nama) value(98736,"M","Lamar"); </p> <p>Jadual kerja mengandungi: </p> <p>Sisipkan workson(videogameid,developerid) nilai (111, 98734); insert workson(videogameid,developerid) Nilai (111, 98735); insert workson(videogameid,developerid) Nilai (112, 98736);</p> <p>Output yang dijangkakan hendaklah yang bertajuk 'World of Warcraft' kerana ia mempunyai paling ramai pengarah yang bekerja pada projek ini dengan kiraan 2, manakala projek bertajuk 'Starcraft 2' tidak mempunyai paling ramai pembangun dalam sampel ini data . </p>
P粉768045522
P粉768045522

membalas semua(1)
P粉158473780

Fungsi lajur/penjumlahan (MAX, COUNT, AVG, dll.) yang dipilih dalam pertanyaan pilihan akan dipaparkan sebagai jadual. Dalam pertanyaan anda:

SELECT MAX(videogameid) FROM ....

Hanya id permainan video dengan nilai terbesar akan dipaparkan. Anda hanya memilih videogameiddengan nilai terbesar. Dalam bahagian kedua pertanyaan, permainan video yang berfungsi dengan lebih daripada 5 pembangun dipilih. Sekali lagi, tiada pengepala pemilihan disambungkan dengan pertanyaan SQL luaran.

Pertanyaan yang diubah suai:

SELECT videogameid,title
FROM videogames WHERE videogameid IN
(SELECT videogameid
FROM workson
GROUP BY videogameid
HAVING COUNT(DISTINCT developerid)>5
);

Pertanyaan ini menunjukkan permainan video dan tajuk dengan lebih daripada 5 pembangun

Pertanyaan lain:

SELECT COUNT(developerid) AS dev_count,videogameid FROM workson GROUP BY videogameid
ORDER BY dev_count DESC LIMIT 1;

Ini menunjukkan permainan video dan bilangan pembangun untuk permainan video yang dipilih dengan pembangun terbanyak. Tiada tajuk .

Kalau kita nak tengok tajuk:

SELECT videogameid,title FROM videogames WHERE videogameid IN
(SELECT videogameid FROM (SELECT COUNT(developerid) AS count,videogameid FROM workson GROUP BY videogameid
ORDER BY COUNT(developerid) DESC LIMIT 1) AS T);

Pertanyaan ini menunjukkan tajuk dan permainan video dengan paling ramai pembangun.

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