Cita:
Iniciado por Maganius
Wenas,,
Estoy con un problema con una consulta SQL:
Código PHP:
Ver original$sql = "SELECT COUNT(titulo_conferencistas.titulo) as CANT, COUNT(personas.Nombre), personas.*,titulo_conferencistas.* FROM personas JOIN titulo_conferencistas ON personas.ID_Personas=titulo_conferencistas.IDPersona WHERE $filtro GROUP BY personas.ID_Personas ".$Order.";";
Lo que intento hacer es que me diga cuantos Titulos tengo y cuantas Personas tengo.
Pero si pongo el GROUP BY me muestra 2 y si lo saco me muestra la cantidad de registros que tengo en titulo_conferencistas
¿Como puedo realizar una consulta donde me muestre en PHP la cantidad de registros que hay en cada tabla?
Lo tengo que hacer en 1 consulta ya que realizo un filtro y esa cantidad varia dependiendo del filtro que se halla realizado
La pregunta central es: ¿Están realmente relacionadas esas dos tablas, tal cmo planteas la consulta?
Por lo que parece, estás contando estás contando por un lado cuántos conferencistas hay registrados, y por otro cuántas conferencias distintas se dieron, agrupados por cada conferencista.
Son criterios algo disimiles, porque contar los conferencistas que tienes no tienen ninguna utilidad si los agrupas por conferencista. Eso haría que el resultado de la cuenta de conferencistas sea siempre uno (1).
En todo caso, piénsalo así:
Puedes agrupar por conferencista, y la cantidad de ellos será igual a la cantidad de registros devueltos (ese COUNT() es irrelevante), mientras que el COUNT de títulos te dirá cuántos títulos ha tenido que dar.
Si el mismo conferencista da varias veces la misma conferencia, y quieres saber cuantas veces dio cada una, esa consulta no te sirve, porque está mal agrupada.
Quita el primer COUNT() y usa la cantidad de registros devueltos.
Nota: Es muy difícil aconsejarte sobre consultas que dependen de variables, porque para nosotros las variables son basura que altera el resultado de formas impredecibles.
En este foro no tratamos con código de programación, sólo SQL (normas del Foro)