【发布时间】:2011-02-25 18:01:13
【问题描述】:
我有 3 个这样的表:
图片(约 10,000 行)
id | place_id | filename
---|----------|----------
1 | 4 | abc.jpg
2 | 3 | def.jpg
3 | 4 | ghi.jpg
4 | 7 | jkl.jpg
标签(约 100 行)
id | name |
---|----------|
1 | tagA |
2 | tagB |
3 | tagC |
4 | tagD |
tagsToImages(~30,000 行)
id | tag_id | image_id
---|----------|----------
1 | 1 | 4
2 | 3 | 2
3 | 2 | 4
4 | 1 | 1
例如,最后一个表格显示了 id = 1 的标签与 id = 4 的图像链接。
我有两个问题,一个很简单(我认为!),一个更难。
简单问题
给定一个place_id,我如何列出所有在该place_id 中有图像的标签?一个例子是:
给定place_id = 7,返回tagA,tagB。
难题
我想要做的是选择具有特定 place_id 的所有图像,并将每个图像与标签列表相关联,如下所示:
选择所有 place_id = 4,同时加入标签信息。
filename | tags
-----------------------
abc.jpg | tagA
ghi.jpg | tagA, tagB
在 PHP 中通过执行多个查询会更好吗,还是可以使用 MYSQL 来做到这一点?
【问题讨论】: