comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[SOLUCIONADO] MySQL COUNT de Una tabla basandose en otra tabla

  • 2 Respuestas
  • 1140 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado stekor

  • *
  • Underc0der
  • Mensajes: 6
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • PeliTime | Peliculas Online
    • Email
« en: Marzo 15, 2014, 12:31:44 am »
Hola chicos
Nesecito su ayuda para sacar el COUNT de esto, no se si se pueda
estructuta

TABLA 'seccion'
____________________
|                |                     |
| seccion    |    libro_id     |
|________|___________|
|   A2         |      2              |
|   A2         |     3               |
|   B3         |     4               |
|   B3         |     5               |



TABLA 'libros'
_________________________________
|                |                      |                       |
|      id       |       libro         |        type       |
|________|___________ |___________|
|     2         |       rojo          |   adulto         |
|     3         |Tres enanitos  |   infantil        |
|     4         |     blanca        |   infantil        |
|     5         |     Juanito      |    infantil        |




$seccion = 'B3';
$search = 'blanca';

$libroseccion = ("SELECT * FROM seccion WHERE seccion  = ''.$seccion.''");

$cantida = mysql_query("SELECT COUNT(*) FROM libros WHERE libro  LIKE '%".$search."%' AND type = 'infantil' AND id = '".$libroseccion['libro_id']."'");

o

algo como esto
$cantida = mysql_query("SELECT COUNT(libros.*) FROM libros, seccion WHERE libros.libro LIKE '%".$search."%' AND libros.type = 'infantil' AND seccion.seccion = '".$seccion."'");


algo asi
lo que quiero es que muestrela cantidad(numero) de libros que el nombre contenga la palabra BLANCA  y type sea infantil pero que se encuentre en la seccion B3

si me pudiesen ayudar se los agradeseria mucho, gracias de antemano.
« Última modificación: Agosto 17, 2014, 11:48:04 am por Expermicid »

Desconectado ezephp

  • *
  • Underc0der
  • Mensajes: 46
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #1 en: Marzo 17, 2014, 09:49:58 am »
la primero variable llamada cantidad, no esta tan errada. La segunda variable si esta errada.

De cualquier forma, te aconsejo que para probar las consultas utilizes directamente mysql, por ejemplo en un phpmyadmin, o si tenes acceso por consola a mysql tambien lo podes probar, se te va a ser mas facil y rapido....

En este momento no tengo acceso a nada para probar y darte la consulta correcta.

Sin embargo fijate si pones solamente esto:
Código: [Seleccionar]
SELECT COUNT(*) FROM libros WHERE libro  LIKE '%".$search."%' Primero...Fijate si ahi funciona bien, Si lo pongas en algun sistema de los que te dije remplaza la variable $search por lo que quieras buscar.

Si llega a funcionar.. prueba.. asi...
Código: [Seleccionar]
SELECT COUNT(*) FROM libros WHERE (libro  LIKE '%".$search."%') AND (type = 'infantil') AND (id = '".$libroseccion['libro_id']."')

Desconectado alexander1712

  • *
  • Underc0der
  • Mensajes: 850
  • Actividad:
    0%
  • Reputación -2
    • Ver Perfil
    • El blog del programador
    • Email
« Respuesta #2 en: Mayo 14, 2014, 11:12:02 am »
lo que quiero es que muestrela cantidad(numero) de libros que el nombre contenga la palabra BLANCA  y type sea infantil pero que se encuentre en la seccion B3

Lo que tu necesitas es una consulta múltiple, vos queres que de los libros que coincidan con la sección b3, se cuenten aquellos que sean infantil y que cumplan con la busqueda?

1º quiero agregar una cosa, tu tabla está mal hecha, los tipos deberían estar en otra tabla que se llame tipos y usar un id para identificarlos (por cuestiones de normalización), y para unir la tabla de secciones con la de libros necesitarías una tabla intermedia, crearle un id a la seccion y luego un nombre, entonces crear una tabla intermediaria que una ambas. dejando esto de lado te respondo como están las tablas actualmente

Código: [Seleccionar]
SELECT COUNT(l.id) FROM libros AS l WHERE (l.libro  LIKE '%".$search."%') AND (l.type = 'infantil') AND (s.seccion = 'B3') LEFT JOIN seccion AS s ON l.id = s.libro_id

aunque la consulta está bastante rebuscada porque tu estructura de tablas está mal hecha por lo que cuesta hacer una consulta clara, de igual manera debería funcionar.

cualquier cosa me dices.

Saludos!

PD: lamento la tardanza en responder.

PD2: No te olvides de filtrar las variables.

PD3: ten en cuenta que los identificadores son importantes ya que la comparacion de enteros es más rápida y fácil que con caracteres, ten en cuenta que un caracter en mayusculas es distinto de un caracter en minúsculas y eso solo ya puede introducirte en un problema de redundancia de datos.

EDITO:

quizá esta consulta funcione mejor:

Código: [Seleccionar]
SELECT count(l.id) FROM seccion AS s WHERE s.seccion = 'B6' LEFT JOIN libros AS l ON (l.id = s.libro_id) AND (l.libro  LIKE '%".$search."%') AND (l.type = 'infantil')
« Última modificación: Mayo 14, 2014, 11:19:30 am por Alexander1712 »

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] ¿Kali Linux o Kali Linux Ligth ?

Iniciado por worq

Respuestas: 2
Vistas: 8459
Último mensaje Noviembre 21, 2017, 12:28:54 pm
por Codig0Bit
[SOLUCIONADO] ¿Como publicar un software como software libre?

Iniciado por FuriosoJack

Respuestas: 2
Vistas: 1721
Último mensaje Mayo 23, 2017, 07:24:22 am
por HATI
[SOLUCIONADO] Linux Mint, errores, errores y mas errores...

Iniciado por n1sendev

Respuestas: 12
Vistas: 3226
Último mensaje Noviembre 22, 2017, 06:50:55 am
por RuidosoBSD
[SOLUCIONADO] Ayuda urgente con Virus "Virus.Win32Sality"

Iniciado por Napsters

Respuestas: 6
Vistas: 3576
Último mensaje Junio 11, 2012, 03:38:18 am
por Satyricon
[SOLUCIONADO] Problem al instalar Windows "cualquier windows"

Iniciado por Made

Respuestas: 7
Vistas: 3138
Último mensaje Septiembre 03, 2012, 04:53:08 pm
por Made