pdo可以将表行作为对象返回,并且该对象的属性是否可以是使用SELECT
的另一个表上JOIN
的结果?
$STH = $this->Con->query("SELECT table1.*, table2.* AS table2row FROM table1 INNER JOIN table2 ON table1.table2_id = table2.id");
$resultObj = $STH->fetchAll(PDO::FETCH_OBJ);
我已经能够从table2中提取单个列,但我希望整行作为属性存在。
另外,我可以SELECT
使用相同的方法将另一个表行作为对象属性并使用第二个表连接吗?
INNER JOIN table3 ON table1.table3_id = table3.id
结果是JSON。
return json_encode($resultObj, JSON_NUMERIC_CHECK)
[
{
"id": 1, "title": "Table 1 title data", "table2": 1, "table3": 100,
"table2row": {
"id": 1,
"title": "Table 2 row title data"
},
"table3row": {
"id": 100,
"title": "Table 2 row title data"
}
},
{
...
}
]
我理解两个SELECT
语句和一个foreach
可以达到相同的结果,但我想使用一个查询来执行此操作,如果它对我来说效率更高写和要执行的服务器。