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

[SOLUCIONADO] combinar 2 selects

Estas en el tema de combinar 2 selects en el foro de Mysql en Foros del Web. Hola, soy nuevo en esto de la programación y necesito ayuda con unas consultas, verán lo que quiero hacer es esto @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: ...
  #1 (permalink)  
Antiguo 20/11/2013, 00:05
 
Fecha de Ingreso: noviembre-2013
Mensajes: 2
Antigüedad: 10 años, 5 meses
Puntos: 0
combinar 2 selects

Hola, soy nuevo en esto de la programación y necesito ayuda con unas consultas, verán lo que quiero hacer es esto
Código MySQL:
Ver original
  1. INSERT INTO usuario_restaurante (idusuario)
  2. SELECT idusuario FROM usuarios where login = "hhh";
Código MySQL:
Ver original
  1. INSERT INTO usuario_restaurante (idrestaurante)
  2. SELECT idrestaurante FROM restaurantes where nombrerest = "kkk";

Básicamente estas 2 consultas quiero que inserte el idusuario y el idrestaurante en una misma fila de la misma tabla.

Salu2

Última edición por gnzsoloyo; 20/11/2013 a las 03:50
  #2 (permalink)  
Antiguo 20/11/2013, 03:30
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: combinar 2 selects

Esta query funcionará pero es en potencia altamente ineficiente puesto que hace un producto cartesiano de las dos tablas para localizar una sola combinación, si el numero de usuarios y restaurantes es grande el producto cartesiano de ambas tablas lo sera mucho mas... Nada te aseguara que dos restaruntes no tengan el mismo nombre....

Código MySQL:
Ver original
  1. INSERT INTO usuario_restaurante ( idusuario, idrestaurante )
  2. SELECT usuarios.idusuario, restaurantes.idrestaurante
  3. FROM usuarios, restaurantes
  4. WHERE usuarios.login = "hhh" AND restaurantes.nombrerest = "kkk";

Por todo ello seguro que seria mas eficiente obtener primero los dos id y hacer un insert normal.... apoyandote en la programacion externa que te estará soportando el loguin...

Código MySQL:
Ver original
  1. SELECT idusuario FROM usuarios where login = "hhh";   -- -->XX
  2.  
  3. SELECT idrestaurante FROM restaurantes where nombrerest = "kkk"; -- -->YY
  4.  
  5. INSERT INTO usuario_restaurante (idusuario,idrestaurante) VALUES XX,YY;

En el momento de hacer el login ya puedes guardar el id del usuario y en el momento que este elige restaurante lo mismo...
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 20/11/2013 a las 03:37
  #3 (permalink)  
Antiguo 20/11/2013, 09:49
 
Fecha de Ingreso: noviembre-2013
Mensajes: 2
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: combinar 2 selects

wow genial, funciona el primer código, si seria algo ineficiente en situaciones normales pero es que en mi código no puedo consultar antes los id por que no han sido creados, este código lo necesitaba al momento de insertar un nuevo usuario para tomar su id creado e insertarlo en otra tabla.

Pero bueno muchas gracias por tu tiempo!!

Salu2

Etiquetas: combinar, select, selects, tabla
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 22:37.