2013-11-27 2 views
0

Этот ответ действительно сработал, но с проблемой. User recent activities - PHP MySqlmysql - получить последние действия пользователя

Мой запрос так же, как что

(SELECT `user_id`, `date_added`, 'vote' AS `type` FROM `vote` WHERE `user_id` = uid) UNION 
(SELECT `user_id`, `date_added`, 'discussion' AS `type` FROM `discussion` WHERE `user_id` = uid) UNION 
(SELECT `user_id`, `date_added`, 'comment' AS `type` FROM `comments` WHERE `user_id` = uid) 
ORDER BY `date_added` DESC; 

мои таблицы голоса, комментарии, обсуждения. используя этот запрос, Я не могу получить только что вставленные, но я получаю последнее - 1 actvity. как я могу использовать эти запросы?

+1

Вы можете уточнить, что именно хотите получить? –

+0

Я не могу получить недавно вставленные, но я получаю последнее - 1 actvity – IOSDealBreaker

ответ

1

Попробуйте

SELECT V.user_id, V.date_added, V.vote 
FROM vote AS V 
JOIN discussion AS D ON D.user_id=V.user_id 
JOIN comments AS C ON C.user_id=V.user_id 
ORDER BY V.date_added DESC 
+0

Я получаю последний, но я не получаю все .... – IOSDealBreaker

+0

Я скорректировал объединение, и он сработал. thanx – IOSDealBreaker

+1

Отлично! Я рад, что вы это поняли –

1

Вы не предоставили точку данных образец для нас, чтобы посмотреть, но я думаю, что проблема может быть, что UNION удаляет дубликаты и ваши точки данных могут быть одинаковыми по нескольким таблицам? Я просто делаю предположение, опираясь на ограниченную информацию.

Я бы предложил использовать Union ALL вместо UNION и посмотреть, какие данные вы вернетесь. Вы можете узнать больше о Union and UNION All here

Спасибо!

Смежные вопросы