我正在为一个学校项目开发一个小
PHP框架,我正在学习如何构建ORM部分.
但是,我无法弄清楚如何从带有连接的SQL查询映射对象关系,或者我只是不知道要搜索的正确单词:(
t1 id title text
–
t2 id name description
我试着做一个简单的事:SELECT * FROM t1 LEFT JOIN t2 ON t1.id = t2.t1_id
我得到的是一个简单的数组,其中来自两个表和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" ] ]