Hallo, ich bin neu hier und auf der Suche nach Hilfe Es wurde eine REST API für ein Forum erstellt (Ein frei erfundenes Übungsprojekt!). Relevant sind die folgenden beiden Tabellen
Topic
id | topic_id (übergeordnetes Thema) | name | description
-------------------------------------------------------
uuid | uuid | text | text
und Thread
id | topic_id | name | created_at
-------------------------------------------------------
uuid | uuid | text | timestamp without timezone
Jetzt soll anhand der TopicID folgendes JSON Objekt an den Client zurückgeschickt werden
Ich habe hier auch mal Testdaten für beide Tabellen angelegt
Die Topic Tabelle:
Die Thread Tabelle:
Ich glaube nicht, dass man das Query so weit aufbereiten kann, dass man das Queryresult am Backend fast nur noch durchreichen muss. Falls doch, umso besser .
Ich habe mal mit meinen quasi nicht vorhandenen SQL Skills versucht, ein Query dafür aufzustellen. Die ID gehört zu Thema 2.
In PgAdmin bekomme ich 2 Rows zurückgeliefert. Klingt schon einmal gut. Meine Frage wäre jetzt: Gibt es eine Möglichkeit, das Query so weit aufzubereiten, dass es quasi "ready to use" von der DB kommt?
Vielen Dank schon einmal.
Topic
id | topic_id (übergeordnetes Thema) | name | description
-------------------------------------------------------
uuid | uuid | text | text
und Thread
id | topic_id | name | created_at
-------------------------------------------------------
uuid | uuid | text | timestamp without timezone
Jetzt soll anhand der TopicID folgendes JSON Objekt an den Client zurückgeschickt werden
Code:
{
parentTopic: {}, // kann auch null sein
name: "",
description: "",
childTopics: [{}, {}, {}],
threads: [{}, {}, {}] // sortiert nach created_at
}
Ich habe hier auch mal Testdaten für beide Tabellen angelegt
Die Topic Tabelle:
Die Thread Tabelle:
Ich glaube nicht, dass man das Query so weit aufbereiten kann, dass man das Queryresult am Backend fast nur noch durchreichen muss. Falls doch, umso besser .
Ich habe mal mit meinen quasi nicht vorhandenen SQL Skills versucht, ein Query dafür aufzustellen. Die ID gehört zu Thema 2.
Code:
SELECT
currentTopic.name,
currentTopic.description,
parentTopic.id AS parentTopicId,
parentTopic.name AS parentTopicName,
parentTopic.description AS parentTopicDescription,
childTopic.id AS childTopicId,
childTopic.name AS childTopicName,
childTopic.description AS childTopicDescription,
linkedThread.id AS threadId,
linkedThread.name AS threadName,
linkedThread.created_at AS threadCreatedAt
FROM
topic currentTopic
left JOIN
topic parentTopic ON currentTopic.topic_id = parentTopic.id
left JOIN
topic childTopic ON currentTopic.id = childTopic.topic_id
left JOIN
thread linkedThread ON currentTopic.id = linkedThread.topic_id
WHERE
currentTopic.id = '624aaab6-2d2d-45dc-a425-c2863f05779c'
ORDER BY
linkedThread.created_at;
In PgAdmin bekomme ich 2 Rows zurückgeliefert. Klingt schon einmal gut. Meine Frage wäre jetzt: Gibt es eine Möglichkeit, das Query so weit aufzubereiten, dass es quasi "ready to use" von der DB kommt?
Vielen Dank schon einmal.