Ik ben via Cakephp aan een systeem bezig. Ik wil een virtueel veld dat het saldo van iemand berekent. Het saldo is de som van alle transacties.
Database ziet er als volgt uit:
CREATE TABLE IF NOT EXISTS `transactions` (
`id` bigint(20) NOT NULL auto_increment,
`user_id` int(11) NOT NULL,
`amount` int(11) NOT NULL,
`datetime` datetime NOT NULL,
PRIMARY KEY (`id`)
)
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`avatar` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
)
Een user heeft meerdere transacties. De foreign key is user_id.
De SQL query die ik nu heb is:
Maar dit werkt niet. Wat doe ik verkeerd?
Database ziet er als volgt uit:
CREATE TABLE IF NOT EXISTS `transactions` (
`id` bigint(20) NOT NULL auto_increment,
`user_id` int(11) NOT NULL,
`amount` int(11) NOT NULL,
`datetime` datetime NOT NULL,
PRIMARY KEY (`id`)
)
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`avatar` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
)
Een user heeft meerdere transacties. De foreign key is user_id.
De SQL query die ik nu heb is:
SQL:
1
| SELECT `User`.`id`, `User`.`name`, `User`.`avatar`, (SELECT SUM(`transactions`.`amount`) FROM transactions, users WHERE `transactions`.`user_id` = `users`.`id`) AS `User__balance` FROM `users` AS `User` WHERE 1 = 1 LIMIT 20 |
Maar dit werkt niet. Wat doe ik verkeerd?