2016-09-20 1 views
2

Kann mir jemand mit einer Join-Abfrage für Tabellen mit JSON-Feldern helfen?Abfragen für JSON-Felder beitreten

Wenn ich zwei Tabellen habe und jeder hat eine Jsonb-Spalte value und ich brauche einige Join-Abfragen.

Sagen wir value Feld in jeder Tabelle hat Zeilen ähnlich wie diese

accounts

[{ 
     "account-id":"c3ff14f9-b9ce-4daf-930b-3500e0efbdc9", 
     "name": "foo" 
    }...] 

account-balances

[{ 
    "account-id": "c3ff14f9-b9ce-4daf-930b-3500e0efbdc9", 
    "amount": 31415926 
}...] 

Sie, dass die Daten in Tabellen sehen ist, zugeordnet über „Konto-ID " Eigentum. Jetzt muss ich alle Konten finden, die entsprechende Saldo haben> 0

Antwort

2

So etwas wie die folgenden sollte es tun:

SELECT * 
FROM accounts JOIN "account-balances" 
       ON accounts.value->'account-id'="account-balances".value->'account-id' 
WHERE ("account-balances".value->>'amount')::integer>0;