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

[SOLUCIONADO] Combinar tablas y usar in para seleccionar registros de otra tabla

Estas en el tema de Combinar tablas y usar in para seleccionar registros de otra tabla en el foro de Mysql en Foros del Web. Buenas tardes, saludos... Tengo varias tablas las cuales son contactos, grupos y grupos_contactos, la primera tiene información de contacto (nombre, apellidos, teléfono) grupos tiene el ...
  #1 (permalink)  
Antiguo 23/10/2016, 12:31
Usuario no validado
 
Fecha de Ingreso: enero-2010
Ubicación: Maturín, Monagas
Mensajes: 190
Antigüedad: 14 años, 3 meses
Puntos: 24
Combinar tablas y usar in para seleccionar registros de otra tabla

Buenas tardes, saludos...

Tengo varias tablas las cuales son contactos, grupos y grupos_contactos, la primera tiene información de contacto (nombre, apellidos, teléfono) grupos tiene el id del usuario, su id auto_increment y nombre del grupo, y el ultimo guarda el id del grupo y los id de los contactos separados por coma (,).

Mi duda es la siguiente como haría para unir las 3 tablas y extraer el nombre del grupo y los contactos respectivamente por ejemplo tengo guardado contactos id: 1,2,3 en el campo id_contactos de grupos_contactos y como dije cada id es de un contacto respectivamente en la tabla contacto que me muestre algo asi:

nombre grupo
Familia

Contactos
mama (04161234567)
papa (04161234567)
hermanos (041212345675)

y asi poder luego mostrarlos y editarlos.

las tablas están hechas así:

grupos
id
id_usuario
nombre

gupos_contactos
id_grupo
id_contactos

contactos
id
id_usuario
nombres
apellidos
cod_pais
telefono
agregado

Tengo la siguiente query sql pero solo me muestra el primer id de la lista como dije los id los guardo en formato (1,2,3) y el id_usuario es quien guarda los contactos y crea los grupos en sus cuentas:

Código SQL:
Ver original
  1. SELECT grupos.id, grupos.id_usuario, grupos.nombre, grupos_contactos.id_grupo, grupos_contactos.id_contactos, contactos.id,contactos.nombres, contactos.telefono FROM grupos_contactos INNER JOIN grupos ON grupos.id = grupos_contactos.id_grupo INNER JOIN contactos ON contactos.id IN (grupos_contactos.id_contactos) WHERE grupos.id_usuario = '1'

quizás la pregunta ya fue hecha o esta por hay pero tengo un rato ya googleando y no encuentro nada parecido, agradecería de antemano cualquier ayuda prestada o si conocen algún tutorial también se los agradeceria
  #2 (permalink)  
Antiguo 24/10/2016, 19:02
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Combinar tablas y usar in para seleccionar registros de otra tabla

Tu tema no tiene que ver con PHP, sino con base de datos; muevo al foro adecuado (supongo MySQL).
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 24/10/2016, 19:49
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Combinar tablas y usar in para seleccionar registros de otra tabla

a ver dejame entender algo, estas guardando los contactos en este formato (1,2,3,4,5)???

Porque no creas un registro para cada contacto?

quedando algo asi:

id_grupo id_contacto
1 1
1 2


Creo que te hace falta diseñar mejor tus tablas..... podria quedar algo como esto:

Grupos
id_grupo
nombre

grupos_contactos
id_grupo
id_contacto

contactos
id_contacto
datos

ahora al momento de unirlas podras obtener los contactos dependiendo el grupo :)

Código MySQL:
Ver original
  1. select * from grupos as t1
  2. inner join grupos_contactos as t2 on (t1.id_grupo=t2.id_grupo)
  3. inner join contactos as t3 on (t2.id_contacto=t3.id_contacto)
  4. where t1.nombre='familia'
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #4 (permalink)  
Antiguo 26/10/2016, 17:15
Usuario no validado
 
Fecha de Ingreso: enero-2010
Ubicación: Maturín, Monagas
Mensajes: 190
Antigüedad: 14 años, 3 meses
Puntos: 24
Respuesta: Combinar tablas y usar in para seleccionar registros de otra tabla

Hola Disculpa la tardanza, tienes mucha razón asi me funciono perfecto, Te agradezco mucho la respuesta...

Etiquetas: php, php+bd+mysql
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 06:16.