尋找具有最多開發人員參與的視訊遊戲的方法(使用SQL查詢)
P粉768045522
2023-09-04 16:18:24
<p>假設我們有3個表,分別是videogames、developers和workson。 </p>
<p>在videogames表中,我們有以下屬性:</p>
<ul>
<li>videogameid(主鍵)</li>
<li>標題</li>
<li>年份</li>
<li>genre</li>
</ul>
<p>然後在developers表中,我們有:</p>
<ul>
<li>developerid(主鍵)</li>
<li>姓名</li>
<li>gender</li>
</ul>
<p>然後在workson表中,我們有:</p>
<ul>
<li>videogameid(主鍵與外鍵)</li>
<li>developerid(主鍵與外鍵)</li>
</ul>
<p>我的程式碼嘗試:</p>
<pre class="brush:php;toolbar:false;">SELECT MAX(videogameid)
FROM
(SELECT videogameid
FROM workson
GROUP BY videogameid
HAVING COUNT(DISTINCT developerid)>5
)videogames_with_most_developers;</pre>
<p>然而,我未能檢索到帶有標題的答案(主要是因為我沒有選擇標題),但這是因為我似乎無法建立連接。 </p>
<p>編輯:我們有一些範例數據,videogames表中有:</p>
<p>插入電玩遊戲(videogameid、標題、年份、類型)</p><p>
VALUES (111,'魔獸世界',2004,'MMORPG');
插入視訊遊戲(視訊遊戲 ID、標題、年份、類型)
VALUES (112,'星海爭霸2',2008,'RTS');</p>
<p>developers表格中有:</p>
<p>插入開發人員(開發人員 ID、性別、姓名)
值(98734,'M','約翰遜');
插入開發人員(開發人員 ID、性別、姓名)
值(98735,“F”,“里賈納”);
插入開發人員(開發人員 ID、性別、姓名)
值(98736,“M”,“拉馬爾”);</p>
<p>workson表格中有:</p>
<p>插入workson(videogameid,developerid)
值 (111, 98734);
插入workson(videogameid,developerid)
價值觀 (111, 98735);
插入workson(videogameid,developerid)
值 (112, 98736);</p>
<p>預期輸出應該是標題為'魔獸世界',因為它有最多的導演在此項目上工作,數量為2,而標題為'Starcraft 2'的項目在此示例數據中沒有最多的開發人員。 </p>
在選擇查詢中選擇的列/聚合函數(MAX、COUNT、AVG等)將顯示為一個表格。 在你的查詢中:
只會顯示具有最大值的視頻遊戲的id。你只選擇了具有最大值的videogameid。在查詢的第二部分中,選擇了與5個以上開發人員合作的videogameid。同樣,沒有選擇標題與外部SQL查詢連接。
修改後的查詢:
#此查詢顯示具有5個以上開發人員的videogameid和標題
另一個查詢:
#這顯示了具有最多開發人員的選定視訊遊戲的videogameid和開發人員數量。沒有標題。
如果我們想要看到標題:
此查詢顯示具有最多開發人員的標題和videogameid。
#