Har ett nytt problem nu.
Koden för att få "total_power" ifrån enskilda spelare fungerar bra. Men nu har jag en tabell med en lista på spelare där jag måste räkna ihop
allas "total_power" till en enda stor summa. Vi kan kalla den "MEGA_TOTAL_POWER".
Jag tror att man någonstans skall lägga en s.k. sub-query?
Här är mitt försök vilket ger mig ett felmeddelanden som jag inte kan förstå:
PHP-kod:
SELECT *,
SUM
(SELECT CASE WHEN items.item_stat IS NULL THEN members.member_attack + members.member_defence ELSE SUM(items.item_stat) + members.member_attack + members.member_defence END AS total_power
FROM members
LEFT JOIN memberitems ON members.member_id = memberitems.memberitems_member
LEFT JOIN items ON memberitems.memberitems_item = items.item_id
GROUP BY members.member_id) AS MEGA_TOTAL_POWER
FROM crews
WHERE id = 1
Här är tabellen 'crews'. Denna lagras alla olika allianser/grupper/klaner.
PHP-kod:
CREATE TABLE IF NOT EXISTS `crews` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
`money` int(11) NOT NULL,
`tax` tinyint(3) unsigned NOT NULL,
`attack` int(10) unsigned NOT NULL,
`defence` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
INSERT INTO `crews` (`id`, `name`, `money`, `tax`, `attack`, `defence`) VALUES
(1, 'MuggemGansters', 0, 0, 0, 0);
Här är tabellen som lagras alla som är med i laget.
PHP-kod:
CREATE TABLE IF NOT EXISTS `crew_members` (
`crew_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`status` tinyint(4) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `crew_members` (`crew_id`, `user_id`, `status`) VALUES
(1, 1, 9);
Hittade denna länk om det kan vara till min hjälp?
http://www.sqlteam.com/article/aggre...ed-sub-queries