Test 1{
"tablesModels": {
"test_sync_main": {
"autoincrementID": false,
"primaryKey": "ID",
"fields": {
"sFieldA": {
"type": "string",
"access": {
"write": [
"user"
],
"read": [
"user"
]
}
},
"iFieldB": {
"type": "int",
"access": {
"write": [
"user"
],
"read": [
"user"
]
}
},
"secondID": {
"type": "string",
"access": {
"write": [
"user"
],
"read": [
"user"
]
}
}
},
"joins": {
"second": {
"srcField": "secondID",
"dstTable": "test_sync_second",
"dstField": "ID"
},
"third": {
"type": "LEFT",
"srcField": "ID",
"dstTable": "test_sync_third",
"dstField": "mainID"
}
}
},
"test_sync_second": {
"autoincrementID": false,
"primaryKey": "ID",
"fields": {
"sFieldA": {
"type": "string",
"access": {
"write": [
"user"
],
"read": [
"user"
]
}
},
"thirdID": {
"type": "string",
"access": {
"write": [
"user"
],
"read": [
"user"
]
}
}
},
"joins": {
"third": {
"srcField": "thirdID",
"dstTable": "test_sync_third",
"dstField": "ID"
}
}
},
"test_sync_third": {
"autoincrementID": false,
"fields": {
"iFieldB": {
"type": "int",
"access": {
"write": [
"user"
],
"read": [
"user"
]
}
},
"mainID": {
"type": "string",
"access": {
"write": [
"user"
],
"read": [
"user"
]
}
}
},
"joins": {
"main": {
"srcField": "mainID",
"dstTable": "test_sync_main",
"dstField": "ID"
}
}
}
},
"mainTable": "test_sync_main",
"fields": {
"fieldA": {
"field": "sFieldA"
},
"fieldB": {
"field": "iFieldB"
},
"secondID": {
"field": "secondID"
}
},
"conditions": []
}
Requete generee :{
"joins": [],
"select": {
"fieldA": "`test_sync_main`.`sFieldA`",
"fieldB": "`test_sync_main`.`iFieldB`",
"secondID": "`test_sync_main`.`secondID`"
},
"mainTable": "test_sync_main",
"aliasMainTable": "test_sync_main",
"primaryKey": "ID",
"conditions": [],
"orderBy": ""
}
Test 2{
"tablesModels": {
"test_sync_main": {
"autoincrementID": false,
"primaryKey": "ID",
"fields": {
"sFieldA": {
"type": "string",
"access": {
"write": [
"user"
],
"read": [
"user"
]
}
},
"iFieldB": {
"type": "int",
"access": {
"write": [
"user"
],
"read": [
"user"
]
}
},
"secondID": {
"type": "string",
"access": {
"write": [
"user"
],
"read": [
"user"
]
}
}
},
"joins": {
"second": {
"srcField": "secondID",
"dstTable": "test_sync_second",
"dstField": "ID"
},
"third": {
"type": "LEFT",
"srcField": "ID",
"dstTable": "test_sync_third",
"dstField": "mainID"
}
}
},
"test_sync_second": {
"autoincrementID": false,
"primaryKey": "ID",
"fields": {
"sFieldA": {
"type": "string",
"access": {
"write": [
"user"
],
"read": [
"user"
]
}
},
"thirdID": {
"type": "string",
"access": {
"write": [
"user"
],
"read": [
"user"
]
}
}
},
"joins": {
"third": {
"srcField": "thirdID",
"dstTable": "test_sync_third",
"dstField": "ID"
}
}
},
"test_sync_third": {
"autoincrementID": false,
"fields": {
"iFieldB": {
"type": "int",
"access": {
"write": [
"user"
],
"read": [
"user"
]
}
},
"mainID": {
"type": "string",
"access": {
"write": [
"user"
],
"read": [
"user"
]
}
}
},
"joins": {
"main": {
"srcField": "mainID",
"dstTable": "test_sync_main",
"dstField": "ID"
}
}
}
},
"mainTable": "test_sync_main",
"pathsToTablesAliases": {
"mainAlias": [],
"secondAlias": [
"second"
]
},
"fields": {
"mainFieldA": {
"field": "sFieldA"
},
"mainFieldB": {
"field": "iFieldB"
},
"secondID": {
"field": "secondID"
},
"secondFieldA": {
"tableAlias": "secondAlias",
"field": "sFieldA"
},
"thirdID": {
"tableAlias": "secondAlias",
"field": "thirdID"
}
},
"conditions": [
{
"tablesAliases": [
"secondAlias"
],
"sql": "`second`.`sFieldA` = :secondFieldA"
}
]
}
Requete generee :{
"joins": {
"secondAlias": {
"dstTable": "test_sync_second",
"aliasSrcTable": "mainAlias",
"joinCondition": "`mainAlias`.`secondID` = `secondAlias`.`ID`"
}
},
"select": {
"mainFieldA": "`mainAlias`.`sFieldA`",
"mainFieldB": "`mainAlias`.`iFieldB`",
"secondID": "`mainAlias`.`secondID`",
"secondFieldA": "`secondAlias`.`sFieldA`",
"thirdID": "`secondAlias`.`thirdID`"
},
"mainTable": "test_sync_main",
"aliasMainTable": "test_sync_main",
"primaryKey": "ID",
"conditions": [
"`second`.`sFieldA` = :secondFieldA"
],
"orderBy": ""
}