SELECT u.id,
'Shift' AS which,
se.created_at
FROM users AS u
JOIN schedule_elements AS se ON se.owner_id = u.id
UNION ALL
(SELECT u.id,
'Like' AS which,
ll.created_at
FROM users AS u
JOIN likes AS ll ON ll.owner_id = u.id
UNION
SELECT u.id,
'Comment' AS which,
cm.created_at
FROM users AS u
JOIN comments AS cm ON cm.owner_id = u.id)
ORDER BY ID DESC , created_at DESC
The output looks like:
id, which, created_at
555, shift, <date>
555, shift, <date>
555, comment, <date>
555, shift, <date>
555, like, <date>
333, shift, <date>
333, shift, <date>
333, comment, <date>
333, shift, <date>
111, like, <date>
111, shift, <date>
111, shift, <date>
輸出具有5個條目ID 555,和4 333我要過濾這個查詢,使得我只有頂部3條目555,頂部3 333,等等。PostgreSQL的限制柱至3%的值
看起來像這個查詢不會工作 - 你可以使用LIMIT只用於整個語句(所有3聯合)。甚至它的作品,它會顯示每個SELECT 3項目不是所有。 –
看起來像它在這裏工作http://stackoverflow.com/questions/1415328/combining-union-and-limit-operations-in-mysql-query – pottedmeat7
這是完全不同的任務。每兩家不同的公司需要10條記錄。在這裏 - 最後3次對用戶+他們的評論和喜歡的操作。 –