Autor Tema: Uniendo 2 tablas de una base de datos por medio de una condicion  (Leído 9183 veces)

skar_alex

  • Sin experiencia
  • *
  • Mensajes: 6
  • ;)
    • Ver Perfil
Hola a todos, estoy algo confuso al hacer una consulta en SQLDeveloper, lo que intento es unir 2 tablas por medio de una condición el problema es que hay columnas que tienen el mismo nombre en las 2 tablas y solo requiero una de las dos, esto es hay un campo lllamado mes, que existe en la tabla A y B y solo quiero el mes de la tabla A, cada tabla contiene 150 elementos, necesito saber si hay una forma de hacerlo más rápido oh si es neceario escribir cada uno de los elementos en el Select.

Esto sería algo como;

Select a.*,b.* from tablaA a, tablaB b
where a.mes=b.mes
and mes=10;

El resultado de este query muestra todas las columnas, pero no quisiera
que se repitiera los campos que estan en A y en B, (es decir no duplicar columnas).

Espero me puedan ayuda.


« Última modificación: 07 de Enero 2015, 21:37 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:Uniendo 2 tablas por medio de una condicion
« Respuesta #1 en: 02 de Enero 2015, 18:47 »
Puedes especificar qué campos quieres rescatar. O bien puedes hacer lo que se denomina un join, que es una operación que permite unir tablas y quedarte sólo con aquellas filas que tienen en común un atributo. Hay varias maneras de hacer joins. Puede ser un inner join (sólo te quedas con las filas donde hay coincidencia del atributo buscado, y sólo con una columna de las dos coincidentes), un left join, right join, outer join, etc.

Ejemplo:

SELECT a*, b*
FROM a
INNER JOIN b ON (a.mes = b.mes)
WHERE a.mes = 10;

El tipo de join a usar depende de lo que quieras lograr.

Puedes probar cambios, por ejemplo

SELECT a*, b*
FROM a
LEFT JOIN b ON (a.mes = b.mes)
WHERE a.mes = 10;

Y ver los resultados que obtienes

Saludos

skar_alex

  • Sin experiencia
  • *
  • Mensajes: 6
  • ;)
    • Ver Perfil
Re:Uniendo 2 tablas por medio de una condicion
« Respuesta #2 en: 06 de Enero 2015, 18:33 »
gracias, x la ayuda lo que en realidad requiero es que la consulta que genero me debe devolver todos los campos, pero en este caso hay un campo llamado mes, anio que existe en tabla a  y en tabla b, lo que requiero es que no aparezca más que solo una vez, porque la otra cosa es hacer algo así.

select a.*,b.nombre,b.apellido,b.sexo from tabla1 a, tabla2 b
where b.anio=a.anio;
lo que no quiero es hacerlo asi porque supongamos una tabla de 40 columnas cada una, tendria que colocar en la segunda los 38 elementos restantes, para que no aparezca de nuevo

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:Uniendo 2 tablas por medio de una condicion
« Respuesta #3 en: 06 de Enero 2015, 19:55 »
Usando join puedes lograr eso... haz pruebas  ;)

skar_alex

  • Sin experiencia
  • *
  • Mensajes: 6
  • ;)
    • Ver Perfil
Re:Uniendo 2 tablas por medio de una condicion
« Respuesta #4 en: 07 de Enero 2015, 16:26 »
ok gracias, lo trataré

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".