Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > Mysql

Respuesta
 
Herramientas Desplegado
Antiguo 04-jul-2007, 14:43   #1 (permalink)
cala932 está en el buen camino
 
Avatar de cala932
 
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 677
Enviar un mensaje por MSN a cala932
Consulta con 3 tablas

Buenas foro, tengo un problem con una consulta, mas bien es todo sql,
tengo tres tablas, una actividad otra alojamiento y acti_aloj es una tabla intermedia que me relaciona las actividades que se practican en un alojamiento, es una relacion de n a m. Como hago para obtener el nombre de los alojamientos en donde se practican todas las actividades. Alguna ayuda increible que me brinden. Supongamos que en la tabla actividades tengo 7 actividades, tendria que buscar en la tabla intermedia los alojamientos que tienen las 7 actividades pero como???, en dicha tabla tengo algo asi:
id_acti ------ id_aloj
1 ------ 1
2 ------ 1
3 ------ 1
4 ------ 1
5 ------ 1
6 ------ 1
7 ------ 1
1 ------ 2
4 ------ 2
8 ------ 2

Se entiende la idea, la cosa es que me tiene que devolver el nombre de los alojamientos en los cuales se practiquen todas las actividades que en total son 7, obio que en la tabla alojamiento tengo el identificador y en otro campo el nombre. Cualquier sugerencia me viene bien porque estoy bastante perdido.
Saludos
__________________
->Aprender es un proceso que incluye el error..
->Si la vida te da la espalda .... tocale el culo.

Última edición por cala932; 04-jul-2007 a las 19:22.
cala932 está desconectado   Responder Citando
Antiguo 14-jul-2007, 01:34   #2 (permalink)
axz
axz tiene algunos puntos positivos de karma
 
Fecha de Ingreso: mayo-2005
Mensajes: 299
Re: Consulta con 3 tablas

Podrías detallar más tus tablas?

Última edición por axz; 14-jul-2007 a las 01:58.
axz está desconectado   Responder Citando
Antiguo 14-jul-2007, 01:56   #3 (permalink)
axz
axz tiene algunos puntos positivos de karma
 
Fecha de Ingreso: mayo-2005
Mensajes: 299
Re: Consulta con 3 tablas

Lee un poco acerca de JOINS en cualquier manual de SQL, tu respuesta está ahí. Una vez que le pierdas el miedo (o asco), verás que no son tan difíciles.

Por lo pronto, si aún no has solucionado tu consulta. Postea la estructura de tus tablas y lo checamos.

Saludos cordiales!
axz está desconectado   Responder Citando
Antiguo 16-jul-2007, 11:09   #4 (permalink)
deadlykyo ha deshabilitado el karma
 
Avatar de deadlykyo
 
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 743
Re: Consulta con 3 tablas

holas cala932, segun entendi tu duda medio que sera dificil hacer lo que piden en una sola consulta, lo que si creo que se podria hacer en dos consultas, una para obtener el total de actividades y a partir del total obtienes los alojamientos que tienen ese mismo numero de actividades, tomando en cuenta que no existen datos duplicados en tu tabla intermedia, aqui te dejo una idea de como seria mas o menos:
Código PHP:
//obtienes total de actividades
SELECT COUNT( *)
FROM actividades

//obtienes los alojamientos con todas las actividades poniendo el total en el having
SELECT *
FROM acti_aloj
HAVING COUNT
(id_aloj)>
espero te sirva, saludos, cya
__________________
"El Conocimiento es de todos, no solo de algunos"
deadlykyo está desconectado   Responder Citando
Antiguo 17-jul-2007, 06:59   #5 (permalink)
cala932 está en el buen camino
 
Avatar de cala932
 
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 677
Enviar un mensaje por MSN a cala932
Re: Consulta con 3 tablas

Gracias por los comentarios axz y deadlykyo. Voy a probar lo que me dices deadlykyo y despues comento como me fue. Gracias nuevamente.
Salud2. xD
__________________
->Aprender es un proceso que incluye el error..
->Si la vida te da la espalda .... tocale el culo.
cala932 está desconectado   Responder Citando
Antiguo 17-jul-2007, 15:58   #6 (permalink)
axz
axz tiene algunos puntos positivos de karma
 
Fecha de Ingreso: mayo-2005
Mensajes: 299
Re: Consulta con 3 tablas

Oh, bien, ya entendí ... ...
Con la respuesta que te dió deadlykyo y leyendo con más cuidado tu post original entendí mejor lo que quieres lograr. Entonces, usando la solución que sugirió deadlykyo y agregando un poco podemos dar con lo que creo que esperas ... siendo así, suponiendo que tus tablas actividad y alojamiento tengan ambas al menos 2 campos (id, descripcion):
Código PHP:
SELECT a.ida.descripcion
FROM acti_aloj aa
INNER JOIN alojamiento a
ON aa
.id_aloj a.id
HAVING COUNT
aa.id_aloj ) = ( SELECT COUNT( * ) FROM actividad 
y queda en una sola, además de que te devuelve el id y los nombres que esperas

Suerte

Última edición por axz; 17-jul-2007 a las 16:01. Razón: Claridad
axz está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 04:56.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93