2014-01-09 1 views
2

у меня есть две таблицы, один для topic_likes & один для user_comments.I должны получить последние обновления, как & комментария от этого tables.Given ниже является SQL: -как заказать ResultSet, основанный на полях из двух таблиц

SELECT (required fields...) 
LEFT JOIN topic_likes AS TL ON (TL.delete_status=0 AND TL.user_id!=$user_id) 
LEFT JOIN user_comments AS UC ON (UC.delete_status=0 AND UC.user_id!=$user_id) 
WHERE 
    (TL.created_date >= '$lastLogin' OR UC.created_date >= '$lastLogin' 
ORDER BY UC.created_date desc,TL.created_date desc 
LIMIT $limit 

Я дал заказ на два поля из двух таблиц (UC.created_date, TL.created_date) Но это не заказывал, основанный на результирующий CREATED_DATE из topic_likes.It только упорядочивает результаты на основе таблицы user_comments

Но если Я удалил предельное условие, которое дает правильные результаты ... !!

Любое предложение оценило

ответ

0

Это странный подход вы принимаете. Если вы хотите отображать понравившиеся пользователи и комментарии, используя один запрос, вы должны UNION получить результаты. Пример:

SELECT * FROM 
(
    SELECT id, `date`, 'like' as `type` FROM topic_likes 
    UNION 
    SELECT id, `date`, 'comment' as `type` FROM user_comments 
) a order by a.date DESC limit 5; 

Результат должен быть похож на это:

Result

Но есть ограничения. Количество столбцов из каждого подзапроса должно совпадать.