0
我新的SQL,我需要一些幫助,這任務:簡單的SQL查詢與MAX()
數據庫模式:
Comic(no primary key NOT NULL, title, pages, publisher)
PoweredPerson(alias primary key NOT NULL, firstname NOT NULL, lastname, evilness_level)
SuperHero(alias primary key→PoweredPerson NOT NULL,cape)
SuperVillain(alias primary key→PoweredPerson NOT NULL)
FightIn(comic primary key→ Comic NOT NULL,hero primary key→ SuperHero NOT NULL,villain primary key→ SuperVillain NOT NULL)
現在我必須聲明的SQL查詢它給人的第一以及那些在只有一部漫畫中與最強敵作戰的動力人物的姓氏。
我的解決辦法是這樣的:
SELECT firstname,lastname
FROM fightIn f
JOIN poweredperson p
ON f.hero = p.alias OR f.villain= p.alias
GROUP BY comic,alias
HAVING COUNT(alias)=(SELECT COUNT(alias)
FROM fightIn f
JOIN poweredperson p
ON f.hero = p.alias OR f.villain = p.alias
GROUP BY comic,alias
ORDER BY COUNT(hero) DESC
LIMIT 1)
我想知道如果我的解決方案是正確的,如果它是,是否有解決這個問題一個更聰明和更短的方式。
在此先感謝=)
首先感謝您的幫助。但是我在您的解決方案中看到一個問題。也有可能,在一部漫畫中戰鬥最多的動力員是超級大人。如果不加入與poweredPerson的戰鬥,我不知道如何將其納入查詢。 – user3117357
@ user3117357,修改爲排除超級villians ... – DRapp