3

我需要找到如何使用 django ORM 构建查询我有两个具有一对多关系的表。

table A
id = integer autonumeric
data = postgres json
...

table B
id = integer autonumeric
id_A = table A id
name = string
t_name = string like slug 

A.data一个结构为 {key (t_name of table B): value (is a string value)} 的 json

因此实体(名称和 t_name)的定义在表 B 中,实体的值在表 A 的 json 结构中。

埃杰:

   Table A
   ------------
   id | data
   1  |{"a_01":"value a","a_02":"value a","b_01":"value b"}
   2  |{"a_01":"value a","b_01":"value b"}

   Table B
   -----------
   id | id_A | name | t_name
   1  |   1  |   A  | a_01 
   2  |   1  |   AA | a_02
   3  |   1  |   B  | b_01
   4  |   2  |   A  | a_01
   5  |   2  |   B  | b_01

id_A一起t_name是唯一的

我需要从 django orm 中获取名称 (B.name) 和值 (A.data."t_name") 的表 A 中的项目

这个查询解决了我的问题,但我不知道如何在 django ORM

SELECT at.id, at.data, bt.name
FROM "A" AS at
JOIN "B" AS bt ON at.id=bt.id_a
WHERE data ->> bt.t_name = 'value a' AND bt.name='AA'
LIMIT 50;

结果是:

1 | {"a_01":"value a","a_02":"value a","b_01":"value b"} | AA
4

0 回答 0