我不太清楚,如果这是正确的做法,这是我的情况:MySQL的 - 子查询,并加入
目前,我想要选择15个画廊,然后离开与用户表连接它通过编号,但我也想从每个画廊中选择一张随机图片,但是我知道你不能限制左连接(图片)只拾取一张随机图片而不做子查询。
这是我走到这一步,但它不是,它应该工作:
SELECT galleries.id, galleries.name, users.username, pictures.url
FROM galleries
LEFT JOIN users ON users.id = galleries.user_id
LEFT JOIN pictures ON (
SELECT pictures.url
FROM pictures
WHERE pictures.gallery_id = galleries.id
ORDER BY RAND()
LIMIT 1)
WHERE active = 1
ORDER BY RAND()
LIMIT 15
我也试图与活动记录这样做,但我得到了这样两个左联接后卡住了,有没有可能办得到这里的子查询:
$this->db->select('galleries.id, galleries.name, users.id as user_id, users.username');
$this->db->from('galleries');
$this->db->join('users', 'users.id = galleries.user_id','left');
$this->db->join('pictures','pictures.gallery_id = galleries.id AND','left');
$this->db->where('active',1);
我希望它不要混乱,但我真的开始通过所有的SQL查询来获得混乱..
编辑: Active Record with CodeIgniter
+1有趣的引用的活动记录...你可以请编辑包括一个链接? – 2009-06-28 18:25:29