2009-08-09 56 views
2

我有2个表:记录排序为:n(一对多)关系

+-----------+ +------------------------------------+--------------+ 
+ persons | | photos           | 
+-----------| +---------------------------------------------------+ 
+ id | name + | id | person_id | path    | title  | 
+-----------+ +---------------------------------------------------+ 
+ 1 | Tom + | 1 |   2 | ~fred/me.png  | Yo, it's Me! | 
+ 2 | Fred + | 2 |   2 | ~fred/my_wife.png | I'm Susan | 
+ 3 | Jack + | 3 |   1 | ~tom/my_dog.jpg | a woof  | 
+-----------+ +---------------------------------------------------+ 

具有在这种关系:

人的hasMany照片< - >照片属于人

我想列出所有人与他们的照片(即使有人没有一个,如杰克)和照片的顺序命名。

我应该为此编写什么SQL查询(MySQL)?我可以在一对多关系中使用连接吗?

PS:只是作为一个信息,我希望能够建立这样一个阵列中的记录:

$persons = Array(
    [0] => Array(
     [id] => 1, 
     [name] => 'Tom', 
     [Photo] => Array(
      [0] => Array(
       [id] => 3, 
       [person_id] => 1, 
       [path] => '~tom/my_dog.jpg', 
       [title] => 'a woof'    // 1st 
      ) 
     ) 
    ), 
    [1] => Array(
     [id] => 2, 
     [name] => 'Fred', 
     [Photo] => Array(
      [0] => Array(
       [id] => 2, 
       [person_id] => 2, 
       [path] => '~fred/my_wife.png', 
       [title] => "I'm Susan"   // 2nd 
      ), 
      [0] => Array(
       [id] => 1, 
       [person_id] => 2, 
       [path] => '~fred/me.png', 
       [title] => "Yo, it's Me!"  // 3rd 
      ) 
     ) 
    ), 
    [2] => Array(
     [id] => 3, 
     [name] => 'Jack', 
     [Photo] => Array() 
    ) 
) 

非常感谢!

回答

4
​​
+0

+1击败了我,抹去了我自己的帖子:) – 2009-08-09 19:50:29