4

私は学校のプロジェクト用の小さな 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"
     ]
]
4

1 に答える 1

1

いいえ、結合は 2 つのテーブルを並べて表示するテーブル ビューを作成するためのものです。しかし、次のことができます。

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"
    ]
]

これにより、解決しようとしていた同じ問題が解決されます。

于 2012-07-02T20:54:30.067 に答える