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

Ayuda con Consulta Anidada

Estas en el tema de Ayuda con Consulta Anidada en el foro de Mysql en Foros del Web. Que tal, Tengo este esquema: Necesito seleccionar todos los campos de provider_contact con todos sus n campos de teléfonos: Ya tengo la consulta para los ...
  #1 (permalink)  
Antiguo 19/09/2005, 11:39
Avatar de ADIÓS_ADRIANA  
Fecha de Ingreso: septiembre-2005
Mensajes: 263
Antigüedad: 18 años, 7 meses
Puntos: 0
Ayuda con Consulta Anidada

Que tal,

Tengo este esquema:



Necesito seleccionar todos los campos de provider_contact con todos sus n campos de teléfonos:

Ya tengo la consulta para los telefonos de un proveedor en específico, pero mi conocimiento llega hasta quí.

Código PHP:
SELECT phone FROM provider_contact_phone WHERE provider_contact_id IN 
    
(SELECT provider_contact_id FROM provider_contact WHERE provider_id=86); 
Espero me ayuden si se puede.
  #2 (permalink)  
Antiguo 19/09/2005, 12:11
Avatar de EternalWitness  
Fecha de Ingreso: agosto-2005
Mensajes: 146
Antigüedad: 18 años, 8 meses
Puntos: 2
que tal con un join
Código:
select * from provider_contact inner join provider_contact_phone on
provider_contact.provider_contact_id=provider_contact_phone.provider_contact_id
(select * o los campos que necesites)
  #3 (permalink)  
Antiguo 19/09/2005, 12:13
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
no es necesario que hagas la consulta anidada, mas bien un select de las dos tablas.

SELECT title, first_name, etc... phone
FROM provider_contact_phone, provider_contact_phone
WHERE provider_contact_id = provider_contact_phone_id
AND provider_contact_id=86

La parte de "AND provider_contact_id=86" solo si quieres filtrar a uno especifico
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #4 (permalink)  
Antiguo 19/09/2005, 12:36
Avatar de ADIÓS_ADRIANA  
Fecha de Ingreso: septiembre-2005
Mensajes: 263
Antigüedad: 18 años, 7 meses
Puntos: 0
Gracias, pero parece que no funciona.

Linterns al colocar:

Código PHP:
SELECT titlefirst_namephone 
FROM provider_contact_phone
provider_contact_phone 
WHERE provider_contact_id 
provider_contact_phone_id 
AND provider_contact_id=86 

Mysql me dice que:

Código PHP:
Tabla/alias'provider_contact_phone' es no unica 
  #5 (permalink)  
Antiguo 19/09/2005, 14:39
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
creo que por error repeti el nombre de la tabla, aqui va nuevamente


SELECT title, first_name, etc... phone
FROM provider_contact, provider_contact_phone
WHERE provider_contact_id = provider_contact_phone_id
AND provider_contact_id=86
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #6 (permalink)  
Antiguo 19/09/2005, 15:27
Avatar de ADIÓS_ADRIANA  
Fecha de Ingreso: septiembre-2005
Mensajes: 263
Antigüedad: 18 años, 7 meses
Puntos: 0
Gracias, Mysql me saca esto



Código PHP:
La columna'provider_contact_id' en where clause es ambigua 
  #7 (permalink)  
Antiguo 19/09/2005, 15:42
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
Utiliza los nombres de las tablas en los campos

Código:
SELECT provider_contact.title, provider_contact.first_name, etc... provider_contact_phone.phone
FROM provider_contact, provider_contact_phone
WHERE provider_contact.provider_contact_id = provider_contact_phone.provider_contact_phone_id
AND provider_contact_phone.provider_contact_id=86
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
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 17:02.