JOOQ mit MySQL: Wie holt man Eins-zu-Viele-Verschachtel-Daten?MySql

MySQL DBMS-Forum
Anonymous
 JOOQ mit MySQL: Wie holt man Eins-zu-Viele-Verschachtel-Daten?

Post by Anonymous »

Ich arbeite an einer JOOQ-Abfrage für MySQL, in der ich zusammen mit eins zu viele verwandten Daten aus zwei anderen Tabellen eine einzelne Zeile aus einer Haupttabelle holen muss. Mein Schema besteht aus drei Tabellen:

[*] table_a: enthält einen Primärschlüssel (user_id) und einen Feldnamen ( plus andere Einstellungen).
TABLE_B: enthält verwandte Werte (z. B. b_value ) und einen fremden Schlüssel user_id .
table_c: enthält verwandte Werte (z. B. c_value ) und einen fremden Schlüssel user_id . >
Ich muss das Ergebnis in die folgenden Pojos abbilden: < /p>
class APojo {
public Int userId;
public List listOfBValue;
public List listOfCValue;
}
< /code>
Die erwartete JSON-Ausgabe wäre so etwas wie: < /p>
{
"userId": 1,
"listOfBValue": [ "bvalue1", "bvalue2" ],
"listOfCValue": [ "cvalue1" ]
}
< /code>
Ich habe zunächst versucht, die von dieser Antwort inspirierte Abfrage zu schreiben: < /p>
dslContext.select(
TABLE_A.USER_ID,
array(
dslContext.select(row(TABLE_B.B_VALUE))
.from(TABLE_B)
.where(TABLE_B.USER_ID.eq(userId))
),
array(
dslContext.select(row(TABLE_C.C_VALUE))
.from(TABLE_C)
.where(TABLE_C.USER_ID.eq(userId))
)
)
.from(TABLE_A)
.where(TABLE_A.USER_ID.eq(userId))
.fetchOne()
< /code>
Diese Abfrage bringt jedoch eine "jooq; schlechte SQL -Grammatik" aus. Wie repariere ich das?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post