no estoy muy seguro de si este es el enfoque correcto, esto es mi situación:MySQL - subconsultas y se une a
Actualmente estoy tratando de seleccionar 15 galerías y luego a la izquierda unirse con la tabla de usuario a través de la id pero también quiero seleccionar una imagen al azar de cada galería, sin embargo, por lo que sé, no se puede limitar la combinación izquierda (imagen) para que solo se recoja una imagen al azar sin hacer una subconsulta.
Esto es lo que tengo hasta ahora, pero no su trabajo como debería:
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
También trataron de hacer esto con Active Record pero me quedé atrapado después de hacer dos a la izquierda se une, es posible hacer llegar una sub consulta aquí:
$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);
espero su no desordenado, pero estoy empezando a ser confuso por todas las consultas SQL ..
Editar: Active Record with CodeIgniter
+1 por cita interesante de Active Record ... ¿podría editar para incluir un enlace? –