ToonMariner Posted January 11, 2010 Share Posted January 11, 2010 I have a table of journeys.. journey_id sender_id recipient_id received distance I need one query to select count of journeys, count of journeys where received is null and the sum of the distance... this is what I have at the mo. SELECT COUNT(`journey`.`journey_id`) AS `sentNo` , COUNT(`t`.`journey_id`) AS `travelling` , SUM(`journey`.`distance`) AS `distance` FROM `journey` LEFT JOIN `users` ON `users`.`user_id` = `card_journey`.`sender` LEFT JOIN (SELECT * FROM `card_journey` WHERE `received` IS NULL) AS `t` ON `t`.`sender` = `users`.`user_id` WHERE `users`.`username` = :username problem being of course that the sum of journeys sums up all values of the joins rather than teh distinct journeys themselves hence when the user has 2 journeys i get double the difference. 3 jurneys triple and so on... Any pointers much appreciated first to Link to comment https://forums.phpfreaks.com/topic/187989-select-sum-of-distinct-records/ Share on other sites More sharing options...
fenway Posted January 16, 2010 Share Posted January 16, 2010 That's because you need to unique-ify the journey first, then join that result. Link to comment https://forums.phpfreaks.com/topic/187989-select-sum-of-distinct-records/#findComment-995947 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.