mysql 查询关系为n 1_按1: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 |

+-----------+ +---------------------------------------------------+

在这种关系中:

个人有许多照片,照片属于个人

我想列出所有有照片的人(即使没有,比如杰克),并按照片的标题排序。

我应该为此编写什么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()

)

)

多谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值