We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
- Prepare
- SQL
- Basic Join
- Ollivander's Inventory
- Discussions
Ollivander's Inventory
Ollivander's Inventory
Sort by
recency
|
2037 Discussions
|
Please Login in order to post a comment
I have a little bit problem with this one, I don't know why it have the wrong answer. Can someone can explain my issue. My code:
SELECT id, age, coins_needed, power from wands inner join Wands_Property on wands.code = wands_property.code where is_evil = 0 order by power desc, age desc, coins_needed asc
/* display id, age, coins_needed, power where
Hermione wants to see only the minimum price for every Power/Age combination in the results which is non evil
so for each power & age combination find min_coins required and then sort
For MySql -
*/
select w.id,p.age,w.coins_needed,w.power from wands w join wands_property p on w.code=p.code where p.is_evil=0 and w.coins_needed = (select min(w1.coins_needed) from wands w1 join wands_property p1 on w1.code=p1.code where p.is_evil=0 and w.power=w1.power and p.code=p1.code) order by w.power desc,p.age desc
For MySql -
SELECT cta.id,cta.age,cta.coins_needed,cta.power FROM (SELECT a.id,a.coins_needed,a.power,b.age FROM Wands a LEFT JOIN Wands_Property b ON a.code = b.code WHERE b.is_evil = 0) cta WHERE (cta.age,cta.coins_needed,cta.power) IN (SELECT b.age,MIN(a.coins_needed),a.power FROM Wands a LEFT JOIN Wands_Property b ON a.code = b.code WHERE b.is_evil = 0 GROUP BY b.age,a.power) ORDER BY cta.power DESC,cta.age DESC