例子:表A(a1,a2),表B(b1,b2,b3)表B的一行实际通过列b3和A的一行a1关联,即a1为外键。查询出,(a1,a2,b1,b2), 怎么实现这种查询?
1、先问怎么构建A与B表的关系?还是A B各自建自己的表,不需要建立关系。在查询时,再按照关联关系查询?
2、如果A、B表在创建记录时建立关系,建立的关联关系是否可以像mysql一样,pointer类型的字段可以是普通列名吗?还是说必须指定到具体objectid值?那岂不是每次创建记录时,就必须知道B表我这一行记录是A表的哪个objectid创建的?而不是根据我指定的一个外键列名建立关联关系。因为麻烦的原因是, objectid必须时创建后才能知道,由lean系统分配的,是这样吧?
3、select 查询时,要实现,A表的几列和B表的几列,共同组成mysql的输出结果。类似join查询。include B 和 include B.b1 没有查询结果?怎么实现?cql 语句怎么写?
4、python 里怎么实现类似mysql表之间的关系查询?mysql是基于表之间的外键,列名进行关联。这里怎么实现?文档是object-c的。不知道怎么实现?
5、这种关联关系,在 创建 对象的时候,就必须基于 对象 的层次建立关联吗?不能在查询时建立,且基于 列名 建立?
为了迁移过来,支持关系型查询。费老大劲了。
6、为什么关系型数据部分不直接使用mysql?文件存储部分使用mangodb?这样就能两者结合起来。用mangodb来实现mysql关系型的部分,对开发者来说,成本有点大。为什么不直接使用mysql?而用mangodb
7、文档不够详细。特别时关联查询部分。实在太浪费时间精力了。最好是,举例子,并代码说明

在线等。期待得到热心人的解答。谢谢

期望有人回答我的理解问题,是否争取?如果都很忙的话,代码部分 给出链接 提示就好。

表A(a1,a2),表B(b1,b2,b3)表B的一行实际通过列b3和A的一行a1关联,即a1为外键。查询出,(a1,a2,b1,b2), 怎么实现这种查询?

你的意思是 A 和 B 之间存在多对多的关系?这种情况可以用 AV.Relation 实现,Relation 相当于在表 A 的一列上存储了一个 B 的 id 的数组,但因为 Relation 也可以反向查询(AV.Relation.reverseQuery),所以相当于在 A 和 B 之间建立了多对多的关系。

详见 https://leancloud.cn/docs/js_guide.html#多对多关系8 抱歉现在 Python 的文档不是很全,可以先看 JavaScript 或其他语言的。

那岂不是每次创建记录时,就必须知道B表我这一行记录是A表的哪个objectid创建的?而不是根据我指定的一个外键列名建立关联关系。因为麻烦的原因是, objectid必须时创建后才能知道,由lean系统分配的,是这样吧?

你可以直接把一个 B 的对象 b 设置为 a 的一个 Pointer 字段的值(而不需要具体的 ObjectId),SDK 会帮你处理有关 ObjectId 的细节(例如 b 还没被保存到数据库):

var a = new A();
var b = new B(); // b 还没保存到服务器
a.set('pointerToB', b); // SDK 会帮你把这一列变成 Pointer, 将值设置为 b 的 ObjectId
a.save(); // 和 a 关联的 b 也会被保存

select 查询时,要实现,A表的几列和B表的几列,共同组成mysql的输出结果。类似join查询。include B 和 include B.b1 没有查询结果?怎么实现?cql 语句怎么写?

LeanCloud(包括 CQL)不支持 Join, 但如果两个表中的对象通过 Ponter 或 Relation 建立了关联,则可以使用 CQL 的 include, relatedTo 等功能来做关联查询,详见 https://leancloud.cn/docs/cql_guide.html#关系查询11

python 里怎么实现类似mysql表之间的关系查询?mysql是基于表之间的外键,列名进行关联。这里怎么实现?文档是object-c的。不知道怎么实现?

LeanCloud 的云存储并不是传统的关系型数据库,没有外键等概念,不要过多地代入关系型数据库的思考方式。至于实现关系查询,要具体情况具体分析(前面已举了一些例子)。

为什么关系型数据部分不直接使用mysql?文件存储部分使用mangodb?这样就能两者结合起来。用mangodb来实现mysql关系型的部分,对开发者来说,成本有点大。为什么不直接使用mysql?而用mangodb

和 MySQL 比起来,MongoDB 的 Schema 更自由(可以有嵌套结构,可以有数组),我们觉得更符合应用开发者的需求。

文档不够详细。特别时关联查询部分。实在太浪费时间精力了。

抱歉因为 Python SDK 刚刚发布,文档不是很全。对于这些概念性的介绍可以先看 REST API 文档或 JavaScript 文档。

谢谢。
1、如果A表是_User()表,就是gameUser。B表是对应的gameScore。A表记录先创建。A---1:N--B 一对多关系。那创建B表记录时,就只能先去A表查询获取objectID,然后填到B的pointer 类型的pointerToA 字段?
2、用cql include 查询时,对应include 的字段没有显示出来。其他字段的记录显示正常。请问解决办法?

如果A表是_User()表,就是gameUser。B表是对应的gameScore。A表记录先创建。A---1:N--B 一对多关系。那创建B表记录时,就只能先去A表查询获取objectID,然后填到B的pointer 类型的pointerToA 字段?

按我的理解 User 和 GameScore 之间是一对多的关系呀,一个用户会拥有多个 GameScore, 这种情况下,只要在 GanmeScore 加上一个叫 user的 Ponter 列就可以了,创建 GameScore 的时候肯定是知道 User 的嘛。

或者如果你的 GameScore 真的有多个用户参与,那么可以在 GameScore 上一个叫 users 的 Relation 列。

用cql include 查询时,对应include 的字段没有显示出来。其他字段的记录显示正常。请问解决办法?

include 只能用于 Pointer 类型的列,建议先看文档 https://leancloud.cn/docs/cql_guide.html#关系查询6
如果还有问题可以把数据样例和反正的 CQL 发出来(最好单独发一个帖子)。