在Codeigniter中加入3个表

时间:2013-05-08 20:17:51

标签: codeigniter join

我想加入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个图像。

有什么想法吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

我看到了2个选项:

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

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

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