資料庫多表查詢
阿新 • • 發佈:2020-10-17
-
匯入檔案後,新增白龍馬,小龍女,白骨精等遊戲角色
-
查詢出每個人打怪最多的一天,並顯示名字,時間,打怪數量。
SELECT a.user_name,b.timestr,kills
FROM player a
JOIN player_kills b ON a.id = b.player_id
WHERE (b.player_id,b.kills) IN (SELECT player_id,MAX(kills) FROM player_kills GROUP BY player_id); -
查詢出同時具有變化和唸經這兩項技能的人。
SELECT a.user_name,b.skill,c.skill
JOIN player_skills b ON a.id = b.player_id
JOIN player_skills c ON c.player_id = b.player_id
WHERE b.skill=‘唸經’ AND c.skill=‘變化’ AND b.skill_level >0 AND c.skill_level>0; -
顯示有同時具有"唸經,變化,騰雲"技能的人。
SELECT a.user_name,b.skill,c.skill,d.skill
FROM player a
JOIN player_skills b ON a.id = b.player_id
JOIN player_skills d ON d.player_id = b.player_id
WHERE b.skill=‘唸經’ AND c.skill=‘變化’ AND d.skill=‘騰雲’ AND b.skill_level >0 AND c.skill_level>0 AND d.skill_level>0; -
具有4項技能裡的兩項以上的人。(唸經, 變化, 騰雲, 必殺技)
SELECT a.user_name,b.skill,c.skill,d.skill,e.skill
LEFT JOIN player_skills b ON a.id = b.player_id AND b.skill=‘唸經’ AND b.skill_level >0
LEFT JOIN player_skills c ON a.id = c.player_id AND c.skill=‘變化’ AND c.skill_level >0
LEFT JOIN player_skills d ON a.id = d.player_id AND c.skill=‘騰雲’ AND d.skill_level >0
LEFT JOIN player_skills e ON a.id = e.player_id AND e.skill=‘浮水’ AND e.skill_level >0
WHERE (CASE WHEN b.skill IS NOT NULL THEN 1 ELSE 0 END)
+(CASE WHEN c.skill IS NOT NULL THEN 1 ELSE 0 END)
+(CASE WHEN d.skill IS NOT NULL THEN 1 ELSE 0 END)
+(CASE WHEN e.skill IS NOT NULL THEN 1 ELSE 0 END) >= 2; -
查詢出每個人3級以上的技能(分組查詢)。(人名、技能名、技能等級)
SELECT a.user_name
FROM player a
JOIN player_skills b on a.id = b.player_id
WHERE b.skill in (‘唸經’,‘變化’,‘騰雲’,‘浮水’) and b.skill_level>0
GROUP BY a.user_name HAVING COUNT(*)>=2;