Tengo una función que recupera todas las etiquetas de una tabla:CodeIgniter - Active Record - sql - complejo unen
function global_popular_tags() {
$this->db->select('tags.*, COUNT(tags.id) AS count');
$this->db->from('tags');
$this->db->join('tags_to_work', 'tags.id = tags_to_work.tag_id');
$this->db->group_by('tags.id');
$this->db->order_by('count', 'desc');
$query = $this->db->get()->result_array();
return $query;
}
He otra tabla llamada 'trabajo'. La tabla 'trabajo' tiene una columna 'borrador' con valores de 1 o 0. Quiero que COUNT (etiquetas.id) tenga en cuenta si el trabajo con la etiqueta específica está en modo borrador (1) o no.
Supongamos que hay 10 trabajos etiquetados con, por ejemplo, 'diseño'. El COUNT tendrá 10. Pero 2 de estos trabajos están en modo borrador, por lo que el COUNT realmente debería ser 8. ¿Cómo manejo esto?
En caso de duda, siempre se puede cambiar a vainilla SQL. – janosrusiczki
Como medida de precaución, necesita alejarse del uso de selectores '*' en sus consultas, esta no es una buena práctica, siempre defina los nombres de columna que desea devolver, * NUNCA * haga 'SELECT * FROM ...' – Jakub