Witam mam takie poniższe zapytanie które pobiera statusy zalogowanego użytkownika a także ludzi których obserwuje zalogowany użytkownik. Problemem jest to , że gdy nie biorę podzapytań tylko wpisuje np. u
.name
co ma pokazać imię , to przy poście obserwowanej osoby pokazuje imię zalogowanego użytkownika. Da się inaczej napisać to zapytanie bo wykonuje się zbyt długo :) Za wszelkie sugestie z góry dziękuje.
SELECT `ms`.`id_status` , `status_body` , `ms`.`user_id`, `fav`.`id_favourites` ,
`fav`.`item_id`,
( SELECT `name` FROM `users` WHERE `id_user`=`ms`.`user_id` ) AS `name`,
( SELECT `surname` FROM `users` WHERE `id_user`=`ms`.`user_id`) AS `surname`,
( SELECT `login` FROM `users` WHERE `id_user`=`ms`.`user_id`) AS `login`
FROM `users` AS `u`
LEFT JOIN `observe` AS `ob`
ON `u`.`id_user` = `ob`.`user_id`
LEFT JOIN `statuses` AS `ms`
ON `ms`.`user_id` = `u`.`id_user` OR ( `ms`.`user_id` = `ob`.`followed_id` AND `ob`.`type` = 1 )
LEFT JOIN `favourites` AS `fav`
ON `fav`.`item_id`=`ms`.`id_status` AND `fav`.`user_id`=10 AND `fav`.`type`=1
WHERE `u`.`id_user` = 10 GROUP BY `ms`.`id_status` ORDER BY `ms`.`id_status` DESC LIMIT 5