Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Reduciendo estas consultas a la base de datos

Estas en el tema de Reduciendo estas consultas a la base de datos en el foro de Bases de Datos General en Foros del Web. Hola a todos: Tengo estas dos consultas a la base de datos: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original $condicion1 = "SELECT * FROM `tiempo` WHERE ...
  #1 (permalink)  
Antiguo 17/01/2011, 06:02
 
Fecha de Ingreso: marzo-2005
Mensajes: 149
Antigüedad: 19 años, 2 meses
Puntos: 0
Reduciendo estas consultas a la base de datos

Hola a todos:
Tengo estas dos consultas a la base de datos:

Código PHP:
Ver original
  1. $condicion1 = "SELECT * FROM `tiempo` WHERE `id` == date("z")";
  2. $consulta1 = mysql_db_query($base,$condicion1) or die (mysql_error());
  3.  
  4. $condicion2 = "SELECT * FROM `noticias`";
  5. $consulta2 = mysql_db_query($base,$condicion2) or die (mysql_error());
  6.  
  7. $con=mysql_close($con);

Mi pregunta es:
¿Cómo puedo reducir estas dos consultas a una sóla?
(No están relacionadas las dos tablas)

Muchas gracias.
  #2 (permalink)  
Antiguo 17/01/2011, 06:25
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Reduciendo estas consultas a la base de datos

Cita:
¿Cómo puedo reducir estas dos consultas a una sóla?
(No están relacionadas las dos tablas)
SI no hay relación, no puedes hacerlo.

Si lo intentas crearás un producto cartesiano, ya que el JOIN relacionara cada registro de la primera tabla con cada uno de los de la segunda, lo que si ambas tuviesen 1.000 registros significa que devolvería 1.000.000 de registros.

¿Se entiende?

Recuerda lo que decían en la escuela: no se puede sumar caballos con manzanas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 17/01/2011, 06:47
 
Fecha de Ingreso: marzo-2005
Mensajes: 149
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: Reduciendo estas consultas a la base de datos

Gracias por responder.

Mi idea es mostrar siempre todos los elementos de la tabla noticias y ademas los elementos de la taba tiempo cuando coincida date("z") con el id de su tabla.

¿Cómo puedo relacionarlas entonces?

En la vieja escuela decían que si tenemos "x caballos" e "y manzanas" tendremos un total de "x + y elementos" jeje

Alguna idea?? ...y gracias eh, que te lo digo desde el afecto
  #4 (permalink)  
Antiguo 17/01/2011, 07:10
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Reduciendo estas consultas a la base de datos

Cita:
Mi idea es mostrar siempre todos los elementos de la tabla noticias y ademas los elementos de la taba tiempo cuando coincida date("z") con el id de su tabla.
Entonces existe una relación ente ambas...

Describe mejor las dos tablas y también cómo se relaciona la ID de "Tiempo" con qué campo de la tabla "Noticia".
Cita:
En la vieja escuela decían que si tenemos "x caballos" e "y manzanas" tendremos un total de "x + y elementos"
Bueno, yo me refería a un nivel escolar primario... Abstracciones de ese nivel recién aparecen mucho después de primer grado (niños de 5 a 6 años de edad). El concept de "elemento" no existe en edad tan temprana. El pensamiento es más natural ("una manzana es una manzana, y dos manzanas son dos manzanas diferentes").
En el extremo, en ese caso no estabas sumando sino contando...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 17/01/2011, 07:37
 
Fecha de Ingreso: marzo-2005
Mensajes: 149
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: Reduciendo estas consultas a la base de datos

Lo siento, no entiendo cómo relacionar las dos tablas.

tabla tiempo ----> seleccionar todos los campos según id
tabla noticias ---> seleccionar toda la tabla independientemente de lo que se tome en la id de tiempo

Código PHP:
Ver original
  1. $condicion1 = "SELECT * FROM `tiempo` WHERE `id` == date("z")";
  2. $consulta1 = mysql_db_query($base,$condicion1) or die (mysql_error());
  3.  
  4. $condicion2 = "SELECT * FROM `noticias`";
  5. $consulta2 = mysql_db_query($base,$condicion2) or die (mysql_error());
  6.  
  7. $con=mysql_close($con);

Gracias por el interés.
  #6 (permalink)  
Antiguo 17/01/2011, 07:53
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Reduciendo estas consultas a la base de datos

Cita:
Iniciado por etanol Ver Mensaje
Lo siento, no entiendo cómo relacionar las dos tablas.

tabla tiempo ----> seleccionar todos los campos según id
tabla noticias ---> seleccionar toda la tabla independientemente de lo que se tome en la id de tiempo

Código PHP:
Ver original
  1. $condicion1 = "SELECT * FROM `tiempo` WHERE `id` == date("z")";
  2. $consulta1 = mysql_db_query($base,$condicion1) or die (mysql_error());
  3.  
  4. $condicion2 = "SELECT * FROM `noticias`";
  5. $consulta2 = mysql_db_query($base,$condicion2) or die (mysql_error());
  6.  
  7. $con=mysql_close($con);

Gracias por el interés.
Postea la estructura de las tablas (el CREATE TABLE...), y explicame bien que representa la fecha en cada una de ellas y por qué decía que el ID de una debía ser igual a la fecha de la otra.

Cita:
Mi idea es mostrar siempre todos los elementos de la tabla noticias y ademas los elementos de la taba tiempo cuando coincida date("z") con el id de su tabla.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 17/01/2011, 13:28
 
Fecha de Ingreso: marzo-2005
Mensajes: 149
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: Reduciendo estas consultas a la base de datos

Esta es la estructura de las dos tablas:

Código MySQL:
Ver original
  1. CREATE TABLE `tiempo` (
  2.   `id` smallint(5) unsigned NOT NULL default '0',
  3.   `imagen` tinytext collate latin1_general_ci NOT NULL,
  4.   `max` tinyint(4) NOT NULL default '0',
  5.   `min` tinyint(4) NOT NULL default '0',
  6.   `texto` tinytext collate latin1_general_ci NOT NULL,
  7.   PRIMARY KEY  (`id`)
  8. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

Código MySQL:
Ver original
  1. CREATE TABLE `noticias` (
  2.   `id_not` smallint(5) unsigned NOT NULL default '0',
  3.   `imagen_not` tinytext collate latin1_general_ci NOT NULL,
  4.   `titular` tinytext collate latin1_general_ci NOT NULL,
  5.   `texto_not` text collate latin1_general_ci NOT NULL,
  6.   PRIMARY KEY  (`id_not`)
  7. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

Preguntaba si hay algún modo de hacer una sola consulta mostrando todos los elementos de la tabla noticias y sólamente los elementos que corresponden a la fila id de la tabla tiempo o necesariamente tengo que hacer dos consultas.

Actualmente lo tengo así
Código PHP:
Ver original
  1. $condicion1 = "SELECT * FROM `tiempo` WHERE `id` == date("z")";
  2. $consulta1 = mysql_db_query($base,$condicion1) or die (mysql_error());
  3.  
  4. $condicion2 = "SELECT * FROM `noticias`";
  5. $consulta2 = mysql_db_query($base,$condicion2) or die (mysql_error());
  6.  
  7. $con=mysql_close($con);

Un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:53.