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