我想加入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个图像。
有什么想法吗?提前谢谢。
答案 0 :(得分:1)
我看到了2个选项:
使用2个查询:一个用于表用户和摄影师,它只返回一个记录,第二个查询用于检索图像。
保持查询不变,并从第一行列出用户+摄影师,并循环所有行以列出图像。
注意:我更喜欢使用第一种方法,虽然它为我的应用程序添加了更多查询,但这样很清楚我的意图和其他程序员会发现修改我的脚本更容易。