OkayAPI Docs


API Path: /api/App/Table/FreeLeftJoinQuery

API Description: R关联 A little complicated, very powerful to JOIN query with another table.

3
API Traffic
HTTP/HTTPS
Protocol
GET/POST
Method
UTF-8
Charset
JSON
Response

API Debug   


API Params

ParameterTypeRequiredDefaultNoteDescription
HTTP_APPKEYStringRequiredMIN: 32Common Put Your APPKEY
model_nameStringRequiredYour table Model Name
join_model_nameStringRequired需要关联的表单名称,目前只支持关联一个表
selectArraySeperated with ,Optaion针对主表的SQL语句的SELECT部分,多个字段用英文逗号分割,如:select=id,uuid。
join_selectArraySeperated with ,RequiredMIN: 1针对关联表的SQL语句的SELECT部分,至少需要指定获取一个字段,多个字段用英文逗号分割,如:select=id,uuid。注意:为避免字段名称冲突,关联表字段在接口返回的结果中的名称为:{关联表单名称}_{关联字段名称}。
onArrayJSON FormatRequired[]用于指定表单关联关系的ON部分,JSON格式,key-value对,key为主表字段名,value为关联表字段名,支持多组。例如:model_name.name = join_model_name.name AND model_name.age = join_model_name.other_age,则接口传递参数为:on={"name":"name","age":"other_age"}
logicEnumOptaionandRange: and/orWhere condition logic, logic=and for logical and, logic=or for logical or
whereArrayJSON FormatOptaion[["id", ">=", "1"]]SQL WHERE condition, JSON format: [condition_1, condition_2, ...]

EACH condition: ["FIELD", "OP", "COMPARE_VALUE"]
  • FIELD: Table field name;
  • OP: such as >、>=、<、<=、<>、!=、EQ、GT、GE、LT、LE、NE、LIKE、NLIKE、IN、NIN、BETWEEN、NBETWEEN
  • COMPARE_VALUE: The values that need to be compared, the format of the comparison value will be different. If the field is a numeric type, pass the numeric type, not a string.
Example: logic=and, where=[["id",">",9],["id","<=",10]], It means: id > 9 AND id <= 10
where_XStringOptaion动态条件,优先于where的JSON数据,简化的where条件,更易使用但只支持部分比较符。条件格式:where_ + X(X要换成你的字段名) = 比较符(见下方) + 中横线(-) + 比较值。支持的比较符和示例如下:
  • EQ:等于(默认),如:where_year=EQ-2020,或:where_year=2020,表示年份year等于2020;
  • GT:大于,如:where_year=GT-2020,表示年份year大于2020;
  • GE:大于等于,如:where_year=GE-2020,表示年份year大于或等于2020;
  • LT:小于,如:where_year=LT-2020,表示年份year小于2020;
  • LE:大于等于,如:where_year=LE-2020,表示年份year小于或等于2020;
  • NE:不等于,如:where_year=NE-2020,表示年份year不等于2020;
  • LIKE:模糊匹配,如:where_name=LIKE-小白,表示名字name含有小白的;
  • NLIKE:模糊匹配(排除),如:where_name=NLIKE-小白,表示名字name不包含小白的
  • IN:枚举查询,如:where_year=IN-2020,2021,2022,表示年份year在这三个年份,多个值用英文逗号分割
  • NIN:枚举查询(排除),如:where_year=NIN-2020,2021,2022,表示年份year不在这三个年份,多个值用英文逗号分割
如果同一字段有多个条件,使用双竖线||分割,如:where_year=GT-2000||LT-2020,表示year年份大于2020(logic=and或logic=or)小于2020。(where和where_X二选一,不可混用,以where_X优先)
orderArrayJSON FormatOptaion[]针对主表的SQL语句的ORDER部分,JSON格式。具体格式为:[第一组排序,第二组排序,……],可以单个或组合排序。
每一组排序格式为:"字段名 + 空格 + ASC|DESC",其中:
  • ASC:为指定列按升序排列
  • DESC:为指定列按降序排列。
例1:单个排序,order=["id DESC"],表示按ID降序,即最新的在最前面。
例2:组合排序,order=["id DESC", "add_time ASC"],表示id DESC, add_time ASC,即先按ID从大到小,再按创建时间倒序排序。
特别地,RAND表示随机排序,请慎用。
pageIntOptaion1MIN: 1第几页
perpageIntOptaion10MIN: 1;MAX: 10000分页数量
is_real_totalBooleanOptaiontrue是否需要真正的总数,1是0否,当表单数据过多时,如果不需要查询真正的总数,将能极大提升接口响应的速度。若为假总数,固定返回9999999。

API Debug

KEYREQUIREDVALUE
app_key *Required
model_name *Required
join_model_name *Required
select Option
join_select *Required
on *Required
logic Option
where Option
order Option
page Option
perpage Option
is_real_total Option

API Response

KEYTypeDescription
err_codeInt状态操作码,0成功;1开发类错误,查询失败(表单不存在或查询错误);2应用层规则拦截,拦截后可以小白开放平台查看日记
err_msgString错误提示信息,err_code非0时参考此提示信息
totalInt数据的总条目数量
listArray查询的结果列表数据
pageInt当前第几页
perpageInt当前分页数量

HTTP Response Code

HTTP Status CodeDescription
Http Status = 200Success
Http Status = 400Illegal-Params
Http Status = 401Illegal-Token
Http Status = 402IP-Banned
Http Status = 404API-NOT-Exsits
Http Status = 406Illegal-APPKEY
Http Status = 407APPKEY-Expired-Out
Http Status = 408APPKEY-Busy
Http Status = 409Illegal-Sign
Http Status = 413API-Traffic-NOT-Enough
Http Status = 415API-LOCKED
Http Status = 500Internal-Server-Error