Hello DEV community,
I'm writing here as I'm a new in KnexJS query builder and need help to how to make a specific SQL
script in KnexJS.
The script
SELECT
c.id,
c.topic,
c.origin_type,
c.origin_id,
c.created_at,
MAX(m.updated_at) updated_at
FROM
conversation AS c
JOIN message m ON m.conversation_id = c.id
GROUP BY
c.id,
c.topic,
c.origin_type,
c.origin_id,
c.created_at
ORDER BY
updated_at DESC
The script joins 2 tables message
and conversation
.
The result is all conversations ordered by the last created_at message in message table
example of an output result:
id | topic | origin_type | origin_id | created_at | updated_at |
---|---|---|---|---|---|
2 | xx | aaa | bbb | 2021-04-07 14:47:55.55+00 | 2021-04-07 18:47:43.558+00 |
1 | xx | aaa | bbb | 2021-04-07 14:37:45.446+00 | 2021-04-07 18:12:01.91+00 |
3 | xx | aaa | bbb | 2021-04-07 14:48:04.055+00 | 2021-04-07 14:56:52.709884+00 |
The updated_at
is deducted from the message table where the last created message as created_at
gives which is the newest updated_at
conversation.
All what I need is to convert to KnexJs but I have no idea how to make it.
I hope what I explained is understandable and hope to get some help with that so I may learn the ideal way of doing it.
Thank you for yor time spent reading my help request :)
Top comments (0)