APIJSON icon indicating copy to clipboard operation
APIJSON copied to clipboard

三个表关联查询,例如A表作为主表 A表的外键,关联B表,B表的外键关联C表,这种关联查询该怎样做?

Open xiaada opened this issue 3 years ago • 9 comments

环境信息

  • 系统:
  • JDK:
  • 数据库:
  • APIJSON:

问题描述

SQL的查询如下: select r.id from roster r left join sub_acct sa on r.company_id = sa.company_id left join main_acct ma on ma.main_account = sa.main_account where ma.open_card_file = 1 ;

我的写法如下:

{
 "sql@": {
      "from": "sub_acct",
      "join": "</main_acct/main_account@",
      "sub_acct": {
        "@schema": "ziyoutong",
        "@column": "company_id",
      },
      "main_acct": {
        "@schema": "ziyoutong",
        "main_account@": '/sub_acct/main_account',
        "open_card_file": 1,  
        "@column": "",
      },
    },
 "[]": {
      "query": 2,
      "roster": {
        "@schema": "ziyoutong",
        "@column": "id",
        "@group": "id_card,self_employed_state",
        "@use": "ziyoutong",
        "@order": "id_card-",
        "company_id{}@": {
          "from": "company_info",
          "company_info": {
            "@schema": "ziyoutong",
            "is_delete": 0,
            "@column": "company_id",
            "company_id{}@": "sql",
          }
        },
      },
}

查询没有报错,但查询出来数据不对。open_card_file = 1 ,这个条件没有作用,没有筛选出来。所以不知道是不是我的写法有问题,希望能给予解答。谢谢

错误信息

xiaada avatar Jun 10 '22 08:06 xiaada

首页 README 和常见问题 issue,以及你提 issue 时的模板应该都包含了 注意事项,认真看一看! https://github.com/Tencent/APIJSON#%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9

https://github.com/Tencent/APIJSON/issues/36

另外这么个简单的 主表 JOIN 两副表需求为啥会用到子查询?

除了通用文档的各种例子,APIAuto 上两百个左右例子也多看看 13000082001/123456 image

13000088888/123456 image

image

TommyLemon avatar Jun 10 '22 09:06 TommyLemon

嗯嗯,好的,谢谢解答。但是我不是主表join两个子表,是主表join一个子表,子表再去join另一个表,这样的我可能还没有看到相关的,因为看到的都是一个主表join多个子表。

xiaada avatar Jun 10 '22 09:06 xiaada

嗯嗯,好的,谢谢解答。但是我不是主表join两个子表,是主表join一个子表,子表再去join另一个表,这样的我可能还没有看到相关的,因为看到的都是一个主表join多个子表。

也是一层搞定 image

TommyLemon avatar Jun 10 '22 09:06 TommyLemon

嗯嗯,好的,谢谢。这种5.0以下的版本的可以识别吗?

xiaada avatar Jun 10 '22 10:06 xiaada

忘了,可以试试。不过建议升级到最新的正式发布版本 https://github.com/Tencent/APIJSON/releases

TommyLemon avatar Jun 10 '22 11:06 TommyLemon

好的,谢谢

xiaada avatar Jun 13 '22 02:06 xiaada

嗯嗯,好的,谢谢解答。但是我不是主表join两个子表,是主表join一个子表,子表再去join另一个表,这样的我可能还没有看到相关的,因为看到的都是一个主表join多个子表。

@xiaada 这个问题你解决了吗?解决了的话能说一下吗?

AwenJackson avatar Aug 26 '22 07:08 AwenJackson

路过,仔细看了官方示例和教程,目前还没弄清楚,怎么查询出 Moment列表,每个Moment的所有Comment,和每个Comment的User怎么写。。

tankilo avatar May 15 '23 08:05 tankilo

路过,仔细看了官方示例和教程,目前还没弄清楚,怎么查询出 Moment列表,每个Moment的所有Comment,和每个Comment的User怎么写。。

@tankilo 不知道你说的 “仔细” 到底多仔细,连 官网文档、项目文档、APIAuto 测试用例 中 包括截屏、JSON 文本的至少 4 处 现成的 一图胜千言/朋友圈动态列表 例子都没看到?

TommyLemon avatar May 21 '23 15:05 TommyLemon