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

Unir 2 consultas

Estas en el tema de Unir 2 consultas en el foro de Mysql en Foros del Web. Hola, necesito unir estas dos consultas: Código: select id, nombre, apellidos from arbol where id in (17); Con esta consulta obtengo el nombre y apellidos ...
  #1 (permalink)  
Antiguo 20/04/2008, 09:50
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Unir 2 consultas

Hola, necesito unir estas dos consultas:

Código:
select id, nombre, apellidos from arbol where id in (17);
Con esta consulta obtengo el nombre y apellidos de la mujer o mujeres de un hombre

Código:
select fecha from matrimonio 
where (idhombre = 16 or idmujer = 16) 
and  (idhomnbre = 17 or idmujer = 17);
Con esta obtengo la fecha de matrimonio, que la guardo en otra tabla


Código:
select fecha from matrimonios where 
(idhombre = 16 or idmujer = 16) and 
(idhombre in (select id, nombre, apellidos from arbol where id in (17)) 
or idmujer in  (select id, nombre, apellidos from arbol where id in (17)));
Quiero obtener el nombre/s de la pareja y la fecha/s de casamiento. Pero no estoy seguro de como hacerlo, gracias


bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332

Última edición por bichomen; 26/04/2008 a las 17:19
  #2 (permalink)  
Antiguo 20/04/2008, 10:18
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Re: Unir 2 consultas

No vemos los datos de las tablas, es decir, imagino que habrá una tabla con id, nombre, apellidos de cada uno de los contrayentes,
y otra tabla con el matrimonio, la fecha, y los PK del marido y la esposa, no sé si en una misma línea
Dinos cómo es la estructura de las tablas y la relación y creo que podremos ayudarte a sacar lo que dices en una sola consulta...
  #3 (permalink)  
Antiguo 20/04/2008, 10:45
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Re: Unir 2 consultas

En la tabla matrimonio solo guardo el id del marido (idhombre), el id de la esposa (idmujer) y la fecha de matrimonio, si el o ella se vuelve a casar, entonces se crea otro registro

En la tabla árbol, guardo el id del (marido o esposa) y en el campo cónyuge, guardo el id o ids del (marido o esposa).

El campo cónyuge vendría ser algo así: 16,12

Por eso hago un IN en la consulta por que puede haber mas de un matrimonio.

Lo que quiero obtener es el nombre del cónyuge/s y la fecha/s

Espero haberme explicado mejor


bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #4 (permalink)  
Antiguo 20/04/2008, 11:20
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Re: Unir 2 consultas

¿en qué tabla tienes los nombres y apellidos?
Porque si tienes una tabla con los nombres de hombres y mujeres y con su id, te resultará fácil y tal vez no necesites ni siquiera la tabla árbol cuyos datos podrás generar cuando quieras mediante un group by y un group_concat...
  #5 (permalink)  
Antiguo 20/04/2008, 11:50
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Re: Unir 2 consultas

Los nombres y apellidos están en la tabla arbol junto con otros datos personales, como ya te e dicho en la tabla matrimonios, solo guardo los ids del hombre y la mujer y la fecha de matrimonio


bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #6 (permalink)  
Antiguo 20/04/2008, 12:03
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Re: Unir 2 consultas

Prueba esto: yo no lo he probado.
Esto si das el número dos veces, tal vez te los encuentre
SELECT CONCAT (a1.nombre,' ', a1.apellidos) as nombre_esposo, CONCAT (a2.nombre,' ',a2.apellidos), m.fecha as fecha_matrimonio FROM matrimonios m, arbol a1, arbol a2 where a1. id=m.idhombre AND a2.id =m.idmujer AND a1.id = [aquí el que busques] OR a2.id = [el que busques] ORDER BY m.fecha

Si es hombre,
SELECT CONCAT (a1.nombre,' ', a1.apellidos) as nombre_esposo, CONCAT (a2.nombre,' ',a2.apellidos), m.fecha as fecha_matrimonio FROM matrimonios m, arbol a1, arbol a2 where a1. id=m.idhombre AND a2.id =m.idmujer AND m.idhombre = [aquí el que busques] ORDER BY m.fecha

Si es mujer
SELECT CONCAT (a1.nombre,' ', a1.apellidos) as nombre_esposo, CONCAT (a2.nombre,' ',a2.apellidos), m.fecha as fecha_matrimonio FROM matrimonios m, arbol a1, arbol a2 where a1. id=m.idhombre AND a2.id =m.idmujer AND m.idmujer = [aquí el que busques] ORDER BY m.fecha

Última edición por jurena; 20/04/2008 a las 12:09
  #7 (permalink)  
Antiguo 20/04/2008, 12:38
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Re: Unir 2 consultas

La primera consulta parece ser la correcta, las otras 2 no las necesito, la consulta le da igual si es hombre o mujer, lo único que me interesa es obtener la pareja y la fecha, muchas gracias, te diré algo


bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #8 (permalink)  
Antiguo 20/04/2008, 12:56
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Re: Unir 2 consultas

No, no me sirve, por que como te dije en la tabla arbol, el campo cónyuge guarda los id's (15,13)


Para que lo entiendas te pongo un ejemplo:


Tabla arbol

id--------nombre--------apeliidos----------conyuge

1---------Pepe-----------martinez----------4,5
2---------Ramon---------perez--------------3
3---------Maria-----------jimenez-----------2
4---------Luisa-----------Hidalgo-----------1
5---------Marisa---------caldero------------1,6
6---------JoseLuis-------perez--------------5


Tabla matrimonios

id--------idhombre--------idmujer----------fecha

1---------1------------------4-----------------4/12/1956
2---------2------------------3-----------------23/10/2001
3---------1------------------5-----------------23/04/1970
4---------6------------------5-----------------03/12/1969


Espero haberte aclarado lo que quiero


bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #9 (permalink)  
Antiguo 20/04/2008, 13:46
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Re: Unir 2 consultas

Esta consulta me funciona a mí:
SELECT CONCAT (a1.nombre,' ', a1.apellidos) as nombre_esposo, CONCAT (a2.nombre,' ',a2.apellidos) as nombre_esposa, m.fecha as fecha_matrimonio FROM matrimonios m, arbol a1, arbol a2 where a1. id=m.idhombre AND a2.id =m.idmujer AND (m.idhombre = 4 OR m.idmujer = 4) ORDER BY fecha

Donde pone 4 debes poner el número del id, pero debes repetirlo para controlar que revise mujer y hombre, es decir, que si buscas el 1
... AND (m.idhombre = 1 OR m.idmujer = 1) ORDER BY fecha

Última edición por jurena; 20/04/2008 a las 14:00
  #10 (permalink)  
Antiguo 21/04/2008, 05:03
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Re: Unir 2 consultas

Código:
SELECT CONCAT (a1.nombre,' ', a1.apellidos) as nombre_esposo, 
CONCAT (a2.nombre,' ',a2.apellidos) as nombre_esposa, 
m.fecha as fecha_matrimonio 
FROM matrimonios m, arbol a1, arbol a2 
where a1. id=m.idhombre 
AND a2.id =m.idmujer 
AND (m.idhombre IN (4) 
OR m.idmujer IN (4)) 
ORDER BY fecha
Lo e puesto dentro de un IN, por que como ya te dije, que podría haber mas de una esposa o marido.

El problema esta en esta parte de la consulta:

Código:
SELECT CONCAT (a1.nombre,' ', a1.apellidos) as nombre_esposo, 
CONCAT (a2.nombre,' ',a2.apellidos) as nombre_esposa
La consulta se realiza dentro de una ficha, donde yo ya tengo a Pepe o a Maria, lo que quiero, es obtener la mujer de Pepe o el marido de Maria y la fecha, pero la consulta que me pones me obtiene lo dos, sin manera de distinguir quien es el "conyuge", por que si pongo

Código:
SELECT CONCAT (a1.nombre,' ', a1.apellidos) as nombre_esposo
Solo me devuelve los hombres y si pongo:

Código:
SELECT CONCAT (a2.nombre,' ',a2.apellidos) as nombre_esposa
Solo me devuelve las mujeres

La consulta no tiene que entender de sexo, si yo obtengo el id de la ficha de Pepe o de Maria, me ha de devolver el id, nombre, apellidos y fecha de la pareja o parejas que haya podido tener.


bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332

Última edición por bichomen; 26/04/2008 a las 17:20
  #11 (permalink)  
Antiguo 21/04/2008, 05:25
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Re: Unir 2 consultas

Bueno creo que ya lo resolví, pongo la consulta por si alguien le puede ser útil, o por si hay algo que rectificar:


Código:
select a0.id, concat(a0.nombre,' ',a0.apellidos) as conyuge, 
m.fecha as fecha_matrimonio 
from arbol, matrimonios m, arbol a0, arbol a1, arbol a2 
where (a0.id in (14) or a0.id in (14)) 
and (a1.id=m.idhombre and a2.id =m.idmujer) 
and (a1.id in (14) or a2.id in (14)) 
group by a0.id 
order by m.fecha asc

14 seria la pareja, gracias Jurema, por la ayuda


bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332

Última edición por bichomen; 26/04/2008 a las 17:21
  #12 (permalink)  
Antiguo 21/04/2008, 08:31
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Re: Unir 2 consultas

Tu consulta da problemas, puesto que con el group by sólo te muestra un cónyuge.
Yo creía que querías sacar los dos. Pero para sacar los cónyuges de alguien, prueba esta:
SELECT IF (a1.id != 14, CONCAT(a1.nombre,' ', a1.apellidos), CONCAT(a2.nombre,' ',a2.apellidos)) as conyuge, m.fecha as fecha_matrimonio FROM matrimonios m, arbol a1, arbol a2 where a1. id=m.idhombre AND a2.id =m.idmujer AND (m.idhombre = 14 OR m.idmujer = 14) ORDER BY fecha

En tres sitios tienes que poner el número, pero esto será fácil mediante una variable. Esto no agrupa y te mostrará los sucesivos cónyuges de alguien.

Ya me dirás.

Última edición por jurena; 21/04/2008 a las 09:53
  #13 (permalink)  
Antiguo 26/04/2008, 04:42
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Re: Unir 2 consultas

Haber, lo hice asi:

Código:
SELECT if( a1.id !=189, concat( a1.nombre, ' ', a1.apellidos ) , 
concat( a2.nombre, ' ', a2.apellidos ) ) AS conyuge, 
a2.id AS id, m.fecha AS fecha_matrimonio
FROM matrimonios m, arbol a1, arbol a2
WHERE a1.id = m.idhombre
AND a2.id = m.idmujer
AND (
m.idhombre
IN ( 190 ) 
OR m.idmujer
IN ( 190 ) 
)
ORDER BY fecha
LIMIT 0 , 30

De esta manera funciona, pero, si el campo de la fecha esta vacio, no me devuelve nada


bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332

Última edición por bichomen; 26/04/2008 a las 17:22
  #14 (permalink)  
Antiguo 26/04/2008, 05:31
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Re: Unir 2 consultas

Bichomen,
¿cómo se ha celebrado un matrimonio y no hay fecha? Vigila eso.
No obstante, cambia la naturaleza del campo fecha (que será un DATE) para que no te admita nulo y automáticamente te pondrá 0000-00-00 como fecha de los matrimonios en los que no se haya especificado fecha (puedes poner tú otra de referencia en valor por defecto).
Con eso ya podrás ver los datos. Yo, que la tenía así, no he tenido problema.
  #15 (permalink)  
Antiguo 26/04/2008, 05:47
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Re: Unir 2 consultas

Tube que hacer una modificación para recuperar tambien el id del conyuge:

Código:
SELECT if( a1.id !=189, concat( a1.nombre, ' ', a1.apellidos ) , 
concat( a2.nombre, ' ', a2.apellidos ) ) AS conyuge,  
if(a1.id != 189, a1.id, a2.id) AS id, m.fecha AS fecha_matrimonio
FROM matrimonios m, arbol a1, arbol a2
WHERE a1.id = m.idhombre
AND a2.id = m.idmujer
AND (
m.idhombre
IN ( 190 ) 
OR m.idmujer
IN ( 190 ) 
)
ORDER BY fecha
LIMIT 0 , 30
bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332

Última edición por bichomen; 26/04/2008 a las 17:22
  #16 (permalink)  
Antiguo 26/04/2008, 05:58
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Re: Unir 2 consultas

Cita:
Iniciado por jurena Ver Mensaje
Bichomen,
¿cómo se ha celebrado un matrimonio y no hay fecha? Vigila eso.
No obstante, cambia la naturaleza del campo fecha (que será un DATE) para que no te admita nulo y automáticamente te pondrá 0000-00-00 como fecha de los matrimonios en los que no se haya especificado fecha (puedes poner tú otra de referencia en valor por defecto).
Con eso ya podrás ver los datos. Yo, que la tenía así, no he tenido problema.
En la tabla de matrimonios si no se a introducido la línea de los id's y la fecha de boda, la consulta no devuelve, nada, igualmente lo e solucionado por programación, y para los caso en que no haya constancia de fecha por desconocimiento e generado otra consulta donde solo se recupera, el nombre del cónyuge

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #17 (permalink)  
Antiguo 26/04/2008, 08:17
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Re: Unir 2 consultas

Prueba a usar IFNULL()

El problema con CONCAT es que cuando una de las cadenas que queremos unir es nulo, el resultado de CONCAT es nulo, aunque este no es tu caso. De todas formas eso tiene fácil solución: ante la menor sospecha de nulos, escribes esto dentro del concat y en lugar de fecha, o fuera del CONCAT, como es tu caso:
IFNULL(fecha, 'no consta la fecha')
Y ya tienes una salida de cadena si la fecha es campo nulo en ese registro.
Aunque si lo has solucionado con programación, estupendo.
En cuanto al orden de las fechas, debes recordar que los Null son ordenados en primer lugar.
No sé a qué te refieres cuando hablas de la falta de ids. ¿Te refieres a la falta de id de arbol, de id de matrimonio o de cónyuge de arbol?

Última edición por jurena; 26/04/2008 a las 08:28
  #18 (permalink)  
Antiguo 26/04/2008, 17:17
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Re: Unir 2 consultas

Ultima modificación:

Código:
select if(a1.id != 37, concat(a1.nombre,' ', a1.apellidos), 
concat(a2.nombre,' ',a2.apellidos)) as conyuge, 
if(a1.id != 37, a1.id, a2.id) as id, 
m.fecha as fecha_matrimonio 
from matrimonios m, arbol a1, arbol a2 
where a1. id=m.idhombre and a2.id =m.idmujer 
and (m.idhombre in (43,44,45,200,201) 
or m.idmujer in (43,44,45,200,201)) 
group by conyuge 
order by fecha;

Tenia el caso de un hombre que se había casado 5 veces, y a el le aparecían todas sus mujeres, pero si voy a la ficha de cada mujer le aparecía el marido 5 veces, ha sido necesario agrupar, pero para darle una vuelta mas de rosca a la cosa, resulta que una de las mujeres estuvo casada con otro antes y al marido en la relación de mujeres le aparece las 5 mujeres y el ex de la mujer , como es posible??


bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #19 (permalink)  
Antiguo 27/04/2008, 00:30
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Re: Unir 2 consultas

Si le ofreces una lista de 5 elementos de los que tienes datos y haces finalmente un group by por cada cónyuge se explica que te salgan 5.
Si agrupas, no te mostrará más que uno de cada uno que te sirva como criterio de agrupación.
Lo que no entiendo es por qué buscar los cónyuges de varios cónyuges a la vez. Si no muestras el primero, no se sabrá de quién es cónyuge el segundo.
Tal y como lo tienes, debes buscar uno a uno, y el número tras el != debe ser el mismo que el escrito tras m.idhombre = y tras m.idmujer =, para poder sacar los cónyuges de ese uno, y lo que tampoco entiendo es por qué no utilizas esta consulta que va bien siempre, aunque busca de uno en uno, eso sí:

SELECT IF (a1.id != 4, CONCAT(a1.nombre,' ', a1.apellidos), CONCAT(a2.nombre,' ',a2.apellidos)) as conyuge, IFNULL(m.fecha, 'no consta fecha') as fecha_matrimonio FROM matrimonios m, arbol a1, arbol a2 where a1. id=m.idhombre AND a2.id =m.idmujer AND (m.idhombre = 4 OR m.idmujer = 4) ORDER BY fecha

¿Qué problema te da esta consulta? ¿Qué más quieres sacar que no te saca esta consulta?
Te he añadido un ifnull para la fecha...

Última edición por jurena; 27/04/2008 a las 01:01
  #20 (permalink)  
Antiguo 28/04/2008, 17:19
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Re: Unir 2 consultas

Haber creo que no me has entendido, imaginate a A y a B:


A se casa 5 veces con

- B
- C
- D
- E
- F

La consulta seria:

Código:
select if(a1.id != A, concat(a1.nombre,' ', a1.apellidos), 
concat(a2.nombre,' ',a2.apellidos)) as conyuge, 
if(a1.id != A, a1.id, a2.id) as id, 
m.fecha as fecha_matrimonio 
from matrimonios m, arbol a1, arbol a2 
where a1. id=m.idhombre and a2.id =m.idmujer 
and (m.idhombre in (B,C,D,E,F) 
or m.idmujer in (B,C,D,E,F)) 
order by fecha;
Ahora si nos vamos a B y le aplicamos la consulta:

Código:
select if(a1.id != B, concat(a1.nombre,' ', a1.apellidos), 
concat(a2.nombre,' ',a2.apellidos)) as conyuge, 
if(a1.id != B, a1.id, a2.id) as id, 
m.fecha as fecha_matrimonio 
from matrimonios m, arbol a1, arbol a2 
where a1. id=m.idhombre and a2.id =m.idmujer 
and (m.idhombre in (A) 
or m.idmujer in (A)) 
order by fecha;

El resultado es:

- A
- A
- A
- A
- A


De hay la necesidad de agrupar el "conyuge", entonces la consulta funciona bien, tanto para A como para B.

Pero es que ademas B estubo casado anteriormente con G y aqui da igual si agrupo o no, la consulta sobre B, me devuelve:

- G
- A

Pero si la hago sobre A:

- B
- C
- D
- E
- F
- G


y sobre G:

- B
- A


Como puedes ver, algo esta fallando.


bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #21 (permalink)  
Antiguo 28/04/2008, 22:24
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Re: Unir 2 consultas

Cita:
Iniciado por bichomen Ver Mensaje
Haber creo que no me has entendido, imaginate a A y a B:
Es verdad: no nos estamos entendiendo.


Si A se casa 5 veces con

- B
- C
- D
- E
- F

La consulta seria:

Código:
SELECT IF (a1.id != A, CONCAT(a1.nombre,' ', a1.apellidos), CONCAT(a2.nombre,' ',a2.apellidos)) as conyuge, IFNULL(m.fecha, 'no consta fecha') as fecha_matrimonio FROM matrimonios m, arbol a1, arbol a2 where a1. id=m.idhombre AND a2.id =m.idmujer AND (m.idhombre = A OR m.idmujer = A) ORDER BY fecha
El resultado:
- B
- C
- D
- E
- F


Ahora si nos vamos a B, que se ha casado con G y con A, y le aplicamos la consulta:

Código:
SELECT IF (a1.id != B, CONCAT(a1.nombre,' ', a1.apellidos), CONCAT(a2.nombre,' ',a2.apellidos)) as conyuge, IFNULL(m.fecha, 'no consta fecha') as fecha_matrimonio FROM matrimonios m, arbol a1, arbol a2 where a1. id=m.idhombre AND a2.id =m.idmujer AND (m.idhombre = B OR m.idmujer = B) ORDER BY fecha
El resultado es:

- G
- A

No sé dónde está el problema y por qué no usar esta consulta.
  #22 (permalink)  
Antiguo 29/04/2008, 04:27
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Re: Unir 2 consultas

Si ahora si, pero si no consta en matrimonios la línea de los id's, aunque el campo de la fecha este vació, la consulta no devuelve nada, pero creo que ya me puedo apañar con esto.


bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #23 (permalink)  
Antiguo 29/04/2008, 07:33
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Re: Unir 2 consultas

Bichomen,
me alegro, pero te diré que es lógico que si te faltan los ids no veas nada, pues realmente la consulta trabaja relacionando por esos ids las dos tablas; si quieres solucionar esos casos en los que en matrimonio te falta un id, yo te recomendaría crear en árbol un registro cuyo nombre fuera "no consta" y apellido "nombre", y luego hacer una consulta actualización donde los matrimonios a los que faltara un idhombre o idmujer tuvieran como id del cóyuge el número de ese id de "no consta nombre". Piensa que yo no utilizo para nada el tercer campo de árbol, sino que trato de hacer que la consulta trabaje con esas dos tablas. De hecho podrías generar los datos que tienes en ese tercer campo mediante una consulta con group by y group_concat, y los tendrías siempre actualizados. En mi opinión, los campos importantes son los ids y no ese de cónyuge.
Suerte

Última edición por jurena; 29/04/2008 a las 07:39
  #24 (permalink)  
Antiguo 13/09/2009, 17:57
 
Fecha de Ingreso: agosto-2009
Mensajes: 19
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Unir 2 consultas

Hola soy un poco nuevo en esto tengo un problema para unir el resultado de dos consultas miren tengo un tabla que se llama documentos y tengo asociasdo un catalogo al tipo de documento en el catalogo solo hay dos tipos de documento 1 identificacion y 2 es comprovante de domicilio, entonces lo que yo quiero hacer es separas en dos campos diferentes los documentos que son tipos de identificacion y los documentos que son comprovante de domicilio entonces yse esto peero ya no se que hacer.


select ID_TiPODOCUMENTO CD, ID_TiPODOCUMENTO IDENTI from DOCUMENTOS DOCU inner join CAT_TIPODOCUMENTO TIPODOC on DOCU.ID_TIPODOCUMENTOFK = TIPODOC.ID_TIPODOCUMENTO where DOCU.ID_TIPODOCUMENTOFK = 2;

pero ahi mando la misma informacion para los 2 campos uso inner join para agarrar la tabla con el catalogo pero en el wher nose como hacerle para que los que son = 1 caigan en el primer campo del select y los que son = 2 caigan en el siguiente campo del select, espero me puedan ayudar se los gradeceria
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 18:53.