ORM关系、PHP和SQL连接

ORM关系、PHP和SQL连接,php,sql,orm,Php,Sql,Orm,我正在为一个学校项目开发一个PHP框架,目前正在学习如何构建ORM部分 但是,我不知道如何从带有联接的SQL查询映射对象关系,或者我不知道要搜索的词:( - 我试着做一个简单的操作:从t1左选择*在t1.id=t2.t1\u id上连接t2 我得到的是一个简单数组,其中包含两个表中的所有字段,id列被覆盖,因为它存在于这两个表中 [ "id" => "2" "title" => "Lorem" "text" => "Ipsum" "name" => "To

我正在为一个学校项目开发一个PHP框架,目前正在学习如何构建ORM部分

但是,我不知道如何从带有联接的SQL查询映射对象关系,或者我不知道要搜索的词:(

-

我试着做一个简单的操作:从t1左选择*在t1.id=t2.t1\u id上连接t2

我得到的是一个简单数组,其中包含两个表中的所有字段,id列被覆盖,因为它存在于这两个表中

[
  "id" => "2"
  "title" => "Lorem"
  "text" => "Ipsum"
  "name" => "Tomato"
  "description" => "Tomato are nice"
]
我的问题是,有没有一种简单的方法可以通过连接得到这样的结果

[
  "t1" => [
     "id" => 2
     "title" => "Lorem"
     "text" => "Tomato"
     "t2" => [
       "id" => 3
       "name" => "Tomato"
       "description" => "Tomato are nice"
     ]
]

不,联接用于创建两个表并排的表视图。但您可以执行以下操作:

SELECT t1.id, t1.title, t1.next, t2.name as "t2_name", t2.description as "t2_description" FROM t1 LEFT JOIN t2 ON t1.id = t2.t1_id
这将为您提供如下前缀:

[
    "t1" => [
        "id" => 2
        "title" => "Lorem"
        "text" => "Tomato"
        "id" => 3
        "t2_name" => "Tomato"
        "t2_description" => "Tomato are nice"
    ]
]
这解决了你想解决的问题

SELECT t1.id, t1.title, t1.next, t2.name as "t2_name", t2.description as "t2_description" FROM t1 LEFT JOIN t2 ON t1.id = t2.t1_id
[
    "t1" => [
        "id" => 2
        "title" => "Lorem"
        "text" => "Tomato"
        "id" => 3
        "t2_name" => "Tomato"
        "t2_description" => "Tomato are nice"
    ]
]