0

我有 3 张桌子正在尝试加入。

user 
photographer
gallery

它们都共享相同的标识符列 user_id。

当我进行选择时,用户表中有一条记录,摄影师表中有一条记录,画廊表中有 5 条记录。

我想只检索一行,但包含画廊表中的 5 个结果。

我尝试了以下方法,但它返回了 5 个单独的行。

$this->db->select('*');    
$this->db->from('user');
$this->db->join('photographer', 'gallery.user_id = photographer.user_id');
$this->db->join('gallery', 'gallery.user_id = users.id');

基本上,每个摄影师都有一个用户条目,但他们可能在图库表中存储了多张图像。

我只需要每个摄影师一个结果,但也需要 5 张图像。

有任何想法吗?提前致谢。

4

1 回答 1

1

在我看来,您有两个选择:

  1. 使用 2 个查询:一个用于表用户和摄影师,它将只返回一条记录,第二个查询用于检索图像。

  2. 保持查询不变,从第一行列出用户 + 摄影师,然后循环所有行以列出图像。

注意:我更喜欢使用第一种方法,虽然它向我的应用程序添加了更多查询,但这种方式很清楚我的意图,其他程序员会发现修改我的脚本更容易。

于 2013-05-08T21:16:01.870 回答