Foros del Web » Programando para Internet » PHP »

Consulta de una novata

Estas en el tema de Consulta de una novata en el foro de PHP en Foros del Web. Hola, me estoy volviendo loca para sacar una consulta de php. Tabla 1: Líquido: agua, leche, vino, aceite Tabla 2: Líquido/Litros (agua,3) (vino,2) (leche,1) Y ...
  #1 (permalink)  
Antiguo 05/06/2011, 20:34
 
Fecha de Ingreso: junio-2011
Mensajes: 8
Antigüedad: 12 años, 10 meses
Puntos: 0
Consulta de una novata

Hola, me estoy volviendo loca para sacar una consulta de php.

Tabla 1: Líquido: agua, leche, vino, aceite
Tabla 2: Líquido/Litros (agua,3) (vino,2) (leche,1)

Y quiero añadir a la Tabla 2 los líquidos que no existen en ella, con cantidad 0.

En este caso solo habría que añadir (aceite,0)

Consulta final: (agua,3) (vino,2) (leche,1) (aceite,0)
  #2 (permalink)  
Antiguo 05/06/2011, 20:43
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Consulta de una novata

Saludos pogf y bienvenida. Podrías mostrar lo que haz hecho. Si no sabes como hacer consultas, te recomiendo que pases por el wiki de este foro vas a ver un tema que te va a ayudar a desenvolverte.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 06/06/2011, 07:25
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: Consulta de una novata

Hola pogf,

Esto debe ser todo en una sola consulta o estas usando un lenguaje como PHP por ejemplo para tu aplicación?
Ya que si es así sería mejor que:
1. Hicieras un select a tabla 1 con sus valores.
2. En un ciclo recorriendo los mismos haces querys a tabla 2 con el valor para ver si existe.
3. Si no existe lo insertas.

Slds
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #4 (permalink)  
Antiguo 06/06/2011, 09:58
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Consulta de una novata

Bienvenido pogf, por favor podrías dar más referencía de lo que tienes hecho, y el lenguaje que usas ???
  #5 (permalink)  
Antiguo 06/06/2011, 11:24
 
Fecha de Ingreso: junio-2011
Mensajes: 8
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Consulta de una novata

Necesito hacer un solo select.

Pero no se ni por donde abordarlo.

Cada vez estoy más desesperada...
  #6 (permalink)  
Antiguo 06/06/2011, 11:47
 
Fecha de Ingreso: junio-2011
Mensajes: 20
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Consulta de una novata

Es muy útil para eso las consultas anidadas:

(INSERT del elemento que no existe en tabla 2 y litros=0 (SELECT * tabla 2 y compara con tabla 1 cual no se repite (SELECT * tabla 1)));

anida las consultas con WHERE.
  #7 (permalink)  
Antiguo 06/06/2011, 11:47
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 2 meses
Puntos: 128
Respuesta: Consulta de una novata

Cita:
Iniciado por pogf Ver Mensaje
Necesito hacer un solo select.

Pero no se ni por donde abordarlo.

Cada vez estoy más desesperada...

mmmm Tarea Detected!!!! pogf creo que deberias empezar colocando lo que tienes, y demostrar ganas de aprender, como anteriormente lo mencionaron, pasa por el wiki y verás que tú duda es algo que podrás abordar, que mejor que leer, ejecutar y Aprender , bueno siempre y cuándo existan las ganas, saludos .
__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón
  #8 (permalink)  
Antiguo 06/06/2011, 14:49
 
Fecha de Ingreso: junio-2011
Mensajes: 8
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Consulta de una novata

A ver, quise reducir el problema, pero veo que una servidora no avanza, por eso pongo el problema real:

La tabla [Productos] está compuesta de "Indice" tipo autonumérico (clave principal), y "Producto" tipo texto.
1,Mesa
2,Silla
3,Sofa
5,Mueble
El Indice 4 no existe, se ha borrado el producto a votar

La tabla [Votaciones] está compuesta de "Indice" tipo autonumérico (clave principal), "IP" tipo texto, y "Producto" tipo número.
Indice,IP,Producto
1,1,1 (registro desechable porque la IP 1 ha votado más tarde al producto 3)
2,1,2 (registro desechable porque la IP 1 ha votado más tarde al producto 3)
3,1,3 La IP 1 vota por Sofa
4,2,1 La IP 2 vota por Mesa
5,3,1 La IP 3 vota por Mesa
6,4,5 La IP 4 vota por Mueble
Nadie vota por Silla

Entonces el select tiene que dar:
Votos,Producto,Indice
2,Mesa,1
1,Sofa,3
1,Mueble,5
0,Silla,2

Con esto:
SELECT MAX(Votaciones.Indice) FROM Votaciones GROUP BY Votaciones.IP
Consigo 3,4,5,6 justo los registros que deseo

Asi que hago esto:
SELECT Count(Votaciones.Producto) AS Votos, Productos.Producto, Productos.Indice
FROM Votaciones INNER JOIN Productos ON Votaciones.Producto=Productos.Indice
WHERE Votaciones.Indice IN (SELECT MAX(Votaciones.Indice) FROM Votaciones GROUP BY Votaciones.IP)
GROUP BY Productos.Producto, Productos.Indice

Y consigo esto:
Votos,Producto,Indice
2,Mesa,1
1,Sofa,3
1,Mueble,5

Ya solo falta añadir:
0,Silla,2

Si hago: UNION SELECT 0, Productos.Producto, Productos.Indice from Productos
se añaden todos los productos, pero yo solo quiero: 0,Silla,2

Espero que se me entienda ahora, gracias eh!
  #9 (permalink)  
Antiguo 06/06/2011, 15:42
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Consulta de una novata

que pasa si cambias inner join por left join?
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #10 (permalink)  
Antiguo 06/06/2011, 18:01
 
Fecha de Ingreso: junio-2011
Mensajes: 8
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Consulta de una novata

No pasa nada, todo igual.

Lo que si me valdría sería un LEFT UNION, no existe verdad?
  #11 (permalink)  
Antiguo 06/06/2011, 22:03
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Consulta de una novata

chias este tema se me hace como que mas de sql que de php en si , creo yo por el in es que no puede aplicar el left join que tal si juegas con el left join sin el in
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #12 (permalink)  
Antiguo 07/06/2011, 06:32
 
Fecha de Ingreso: junio-2011
Mensajes: 8
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Consulta de una novata

Alguien puede ayudar a esta novata?
  #13 (permalink)  
Antiguo 07/06/2011, 07:08
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Consulta de una novata

bueno puedes siempre insertarlo y si ya estaba pues que lo actualice solamente, no es lo mejor pero te resolverá el problema....

busca sobre insert into 'tus cosas' on duplicate key update
  #14 (permalink)  
Antiguo 07/06/2011, 10:47
 
Fecha de Ingreso: junio-2011
Mensajes: 8
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Consulta de una novata

necesito un select, no un insert!

Para ponerlo en una instrucción de php y que me muestre una tabla en una web.
  #15 (permalink)  
Antiguo 07/06/2011, 10:53
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Consulta de una novata

Cita:
Iniciado por pogf Ver Mensaje
Hola, me estoy volviendo loca para sacar una consulta de php.

Tabla 1: Líquido: agua, leche, vino, aceite
Tabla 2: Líquido/Litros (agua,3) (vino,2) (leche,1)

Y quiero añadir a la Tabla 2 los líquidos que no existen en ella, con cantidad 0.

En este caso solo habría que añadir (aceite,0)

Consulta final: (agua,3) (vino,2) (leche,1) (aceite,0)
donde dice seleccionar ??? leo que dice añadir a la tabla 2 .....
  #16 (permalink)  
Antiguo 07/06/2011, 14:50
 
Fecha de Ingreso: junio-2011
Mensajes: 8
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Consulta de una novata

Cierto, al comienzo me equivoqué, lo que necesito es un solo select, sorry
Y gracias a los que me ayudais
  #17 (permalink)  
Antiguo 07/06/2011, 14:53
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Consulta de una novata

bueno reformula lo que quieres y pon las tablas involucradas y hacemos el select entre todos
  #18 (permalink)  
Antiguo 07/06/2011, 16:48
 
Fecha de Ingreso: junio-2011
Mensajes: 8
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Consulta de una novata

Post 8, eso quiero, no esta bien explicado?
  #19 (permalink)  
Antiguo 07/06/2011, 16:57
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Consulta de una novata

Cita:
Iniciado por pogf Ver Mensaje
Post 8, eso quiero, no esta bien explicado?

lo que no esta muy bien es el topico , esto es mas de sql este asunto que de php en si, por que no le preguntas a gatorV a ver si te lo puede mover hacia alla , y en serio me late que va por left join sin un in por la misma definicion del left join
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo

Etiquetas: Ninguno
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

SíEste tema le ha gustado a 1 personas




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