的我有以下查詢:SQL:追加有兩個相同的查詢「GROUP BY ORDER BY」和相同數量的行
SELECT q2.name, q1.countParticipants, q2.countGames FROM
(
SELECT c.countryName AS name, count(p.idParticipant) AS countParticipants
FROM Country c, Participant p, Game g
WHERE p.fkGame = g.idGame AND c.idCountry = p.fkCOuntry AND c.countryName LIKE '%$countryName%'
GROUP BY c.countryName
ORDER BY c.countryName;
) AS q1 ,
(
SELECT c.countryName AS name, count(g.idGame) as countGames
FROM Country c, Game g
WHERE c.idCountry = g.fkHostCountry AND c.countryName LIKE '%$countryName%' GROUP BY c.countryName
ORDER BY c.countryName)
) AS q2
GROUP BY q1.name
ORDER BY q1.name
查詢應該在奧運會上那把返回參與者的數量在給定的countryName
(q1)中以及在相同的countryName
(q2)中發生的總數比賽的次數。它確實會返回一些東西,但結果是錯誤的。
,而不是返回什麼,我需要(即總數的遊戲),似乎回到遊戲,在countParticipants
的participants
參加了數(特定國家)。
現在,無論是從我的查詢中,問題都來自我的數據庫中的數據。你可以請檢查一下,所以我知道在哪裏糾正這個問題?
非常感謝您
注意:兩者的結果集加時賽的子查詢返回相同的行數和排序方式相同。
你知道'GROUP BY'是做什麼的嗎? – Kermit
是的,我知道它做了什麼。我有更多的中級SQL級別:) –
你需要一個聚合來使用它。 – Kermit