I have updated from MySQL 5.6 to MariaDB 10.1, I have some problems with getting my "LEFT JOIN" to work.
SELECT * FROM users;
Returns 19 rows, as expected
SELECT * FROM users LEFT JOIN HOURS ON users.id = hours.user;
Returns 24 rows?!?
SELECT *
FROM users
LEFT JOIN (
SELECT *
FROM HOURS
WHERE stop IS NULL
) as hours2
ON users.id = hours2.user;
Returns 0 rows (all rows in hours have a stop value atm)
I would expect to get 19 rows in all 3 queries, I am probably doing something wrong, but was unable to google a solution.
query used on MySQL 5.6
SELECT `users`.`initials` AS 'Initials', `users`.`name` AS 'Bruger' ,
`projects`.`id` AS 'ProjectId', `projects`.`name` AS 'Project',
`work_type`.`name` AS 'Arbejde'
FROM `users`
LEFT JOIN (
SELECT `hours`.`user`, `hours`.`work_type`, `hours`.`project`
FROM `hours`
WHERE `id` IN (
SELECT max(`id`) AS `id`
FROM `hours`
WHERE `stop` IS NULL
GROUP BY `user`)
) AS `hours` ON `hours`.`user` = `users`.`id`
LEFT JOIN `projects` ON `projects`.`id` = `hours`.`project`
LEFT JOIN `work_type` ON `work_type`.`id` = `hours`.`work_type`
WHERE `users`.`status` = 1
ORDER BY `users`.`name`;
This always returned 17 rows before the update (19 rows in users, where 17 have status = 1)
But now this query only returns users that have "stop" = null.