Rumah  >  Soal Jawab  >  teks badan

Cara untuk mencari permainan video dengan penglibatan paling banyak pembangun (menggunakan pertanyaan SQL)

<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粉768045522P粉768045522412 hari yang lalu541

membalas semua(1)saya akan balas

  • P粉158473780

    P粉1584737802023-09-05 12:10:39

    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.

    balas
    0
  • Batalbalas