Comunidad de diseño web y desarrollo en internet online

consulta SQL

Citar            
MensajeEscrito el 17 Nov 2008 09:42 pm
Alguien se le ocurre como hacer la siguiente consulta:
tengo 2 tablas

1° tabla: todos los campos son INT
idtabla1 || idConcepto1 || id Concepto2
1 || 1 || 2
2 || 3 || 2

2° tabla:
id || Precio
1 || 100
2 || 200
3 || 400

yo quiero reemplezar tanto idConcepto1 e idConcepto2, por sus correspondientes precios de la tabla 2

3| resultado consulta:
idTabla1 || primerprecio || segundoprecio
1 || 100 || 200
1 || 400 || 200

quizas sea muy facil, pero la verdad es que no me sale. :(
gracias por tu ayuda!!!!

Por pelota_ros

8 de clabLevel



 

msie7
Citar            
MensajeEscrito el 17 Nov 2008 10:02 pm
Busca sobre update y join, así podras actualizar tu tabla asociandola con los datos de la otra.

Por Odin

Claber

639 de clabLevel

2 tutoriales

Genero:Masculino   Premio_Secretos

El valle de las hamacas

firefox
Citar            
MensajeEscrito el 17 Nov 2008 10:31 pm
Gracias Odin!. Update es para modificar los datos de la tabla, pero no es lo que quiero lograr. Pienso que la solucion está en JOIN, pero no me doy cuenta. Si hago
SELECT tabla1.*, tabla2.*
FROM tabla1 INNER /* ó LEFT OUTER */ JOIN tabla2 ON (tabla1.idConcepto1 = tabla2.id) AND (tabla1.idConcepto2 = tabla2.id)
, no funciona.

AYUDAAAAA! Gracias

Por pelota_ros

8 de clabLevel



 

msie7
Citar            
MensajeEscrito el 17 Nov 2008 10:42 pm
El JOIN no esta restringido a los selects, si haces algo como UDPDATE tabla1 JOIN tabla2 SET tabla1.campo = tabla2.campo, funcionará

Por Odin

Claber

639 de clabLevel

2 tutoriales

Genero:Masculino   Premio_Secretos

El valle de las hamacas

firefox
Citar            
MensajeEscrito el 18 Nov 2008 04:14 am
amigo mio a menos que quieras hacer una tabla temporal deberias hacer como te dice el Compadre Odin :-)

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 18 Nov 2008 05:10 am
quizás funcione

Código :

INSERT INTO
tabla1,
tabla2
(
tabla1.tucampo,
tabla2.tuotrocampo
)
SELECT
1,
2,
#o lo que se te de la gana


aunque no he probado si funciona insertar a mas de una tabla en la misma query

si no, tambien puedes hacer todo con joins, de lo cual si estoy seguro que funcionan http://dev.mysql.com/doc/refman/5.0/es/join.html

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 18 Nov 2008 11:09 pm
averigua tambien sobre triggers tambien son una opcion

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 18 Nov 2008 11:19 pm
¿Piensas deshacerte de la tabla 2? ¿o lo que pretendes hacer es una consulta que usará constantemente tu aplicación?. También depende mucho el contexto en el que te encuentres, el usar una solución u otra.

Por Darel

725 de clabLevel

5 tutoriales

 

I'm a human

firefox
Citar            
MensajeEscrito el 19 Nov 2008 01:10 pm
Gracias a todos por sus respuestas!. La solucion, aportada desde otro foro :P, fue usar dos INNER JOIN y nombrar la tabla2 con dos alias distintos, para así, poder lograr el resultado. Saludos!.

Por pelota_ros

8 de clabLevel



 

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.