0

データベースからデータを選択したいときに問題があります。

これは私の質問です

SELECT J.id as id_job, J.title as job_title, J.companies_id, C.name as company_name,J.created_at, L.name as Location,CL.postal_code, CL.address
                                FROM jobs J
                                INNER JOIN bla1 C ON ( C.id = J.company_id )
                                INNER JOIN bla2 CL ON ( CL.id = J.company_location_id )
                                INNER JOIN bla3 L ON ( L.id = CL.location_id )
                                WHERE J.status =1
                                AND C.status =2
                                And CL.status = 1
                                AND L.status = 1
                                ORDER BY J.created_at DESC
                                LIMIT 0 , 30

これは、を使用したそのクエリの結果ですvar_dump()

["_result":protected]=>
  array(15) {
    [0]=>
    array(8) {
      ["id_job"]=>
      string(2) "27"
      ["job_title"]=>
      string(10) "YUYUYUYUYU"
      ["company_id"]=>
      string(1) "3"
      ["company_name"]=>
      string(16) "voyage indonesia"
      ["created_at"]=>
      string(19) "2012-10-03 09:35:37"
      ["Location"]=>
      string(4) "Bali"
      ["postal_code"]=>
      string(6) "989767"
      ["address"]=>
      string(11) "dimana mana"
    }
    [1]=>
    array(8) {
      ["id_job"]=>
      string(2) "23"
      ["job_title"]=>
      string(11) "OYEEEEAAHHH"
      ["company_id"]=>
      string(1) "3"
      ["company_name"]=>
      string(16) "voyage indonesia"
      ["created_at"]=>
      string(19) "2012-09-28 09:06:54"
      ["Location"]=>
      string(7) "Bandung"
      ["postal_code"]=>
      NULL
      ["address"]=>
      NULL
    }
    [2]=>
    array(8) {
      ["id_job"]=>
      string(2) "20"
      ["job_title"]=>
      string(14) "TKPDKJKLADKSJA"
      ["company_id"]=>
      string(1) "3"
      ["company_name"]=>
      string(16) "voyage indonesia"
      ["created_at"]=>
      string(19) "2012-09-20 09:24:50"
      ["Location"]=>
      string(7) "Bandung"
      ["postal_code"]=>
      NULL
      ["address"]=>
      NULL
    }
}
["_total_rows":protected]=>
  int(3)
  ["_current_row":protected]=>
  int(0)
  ["_as_object":protected]=>
  bool(false)

私の目標:このような8の配列インデックスの例、またはこのコードよりも優れたもの

array(8) {
          ["id_job"]=>
          string(2) "27"
          ["job_title"]=>
          string(10) "YUYUYUYUYU"
          ["company_id"]=>
          string(1) "3"
          Array ( [companies] => array(1) {
          ["company_name"]=>
          string(16) "voyage indonesia"
          })
          ["created_at"]=>
          string(19) "2012-10-03 09:35:37"
          ["Location"]=>
          string(4) "Bali"
          ["postal_code"]=>
          string(6) "989767"
          ["address"]=>
          string(11) "dimana mana"
        }

company_id はリレーション テーブル データベース テーブル bla1 です。リレーション テーブルに配列を指定したいので、array('bla1' = > array('company_id',1)); 提案のようにデータを簡単に解析できますか?

4

2 に答える 2

1

SQL クエリからネストされた配列を取得できるとは思いません。データベース クエリは、それ以上のサブ構造なしで行と列を提供します。

もちろん、ジョブと場所を含むテーブルを配列として取得し、そこから目的のネストされたリストを生成するだけで、プログラムでこれを行うことができます。ただし、結合の力が失われているため、結合をコードに埋め込む必要があります。

于 2012-10-05T10:29:54.610 に答える
1

これがあなたの望むものだと思います。

 array[$row_id] = $row;
于 2012-10-05T10:12:08.897 に答える