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

Ayuda con detalle de consulta SQL

Estas en el tema de Ayuda con detalle de consulta SQL en el foro de Mysql en Foros del Web. Que tal tengo esta consulta, SELECT po.provider_name, po.website, co.phone_code, max(re.status_2) as status_2 FROM provider po, countries co, remarks re WHERE co.name=po.country AND re.provider_id=po.provider_id group BY ...
  #1 (permalink)  
Antiguo 17/05/2006, 18:36
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 11 meses
Puntos: 4
Ayuda con detalle de consulta SQL

Que tal tengo esta consulta,

SELECT po.provider_name, po.website, co.phone_code, max(re.status_2) as status_2 FROM provider po, countries co, remarks re
WHERE co.name=po.country AND re.provider_id=po.provider_id
group BY po.provider_id

La cuestión es que solo me muestra los que tienen algun registro en "re.status_2"

También necesito los que no tienen ningun registro.....Como sería ?
__________________
EL LIMITE ES EL UNIVERSO
  #2 (permalink)  
Antiguo 18/05/2006, 07:33
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 19 años
Puntos: 5
Para que se muestren todos los registros de una tabla, aunque no tengan registros en otra, con la cual estas haciendo join, puedes hacer uso de LEFT o RIGHT JOIN
Código PHP:
//
SELECT po.provider_namepo.websiteco.phone_codemax(re.status_2) as status_2 
FROM remarks re LEFT JOIN 
provider po INNER JOIN countries co ON (co.name=po.country) ) ON (re.provider_id=po.provider_id)
GROUP BY po.provider_id 
aqui hay unos ejemplos sencillos y bien graficos de como funciona el LEFT y RIGHT JOIN,
http://www.wellho.net/mouth/158_MySQ...UTER-JOIN.html
saludos... cya
__________________
"El Conocimiento es de todos, no solo de algunos"
  #3 (permalink)  
Antiguo 18/05/2006, 08:09
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 11 meses
Puntos: 4
Ok, Master, Funciona.........

SELECT po.provider_name, po.website, co.phone_code, max(re.status_2) as status_2
FROM remarks re RIGHT JOIN ( provider po RIGHT JOIN countries co ON (co.name=po.country) ) ON (re.provider_id=po.provider_id)
GROUP BY po.provider_id


Sabes como puedo colocar en la consulta "algo" para que si max(re.status_2) no tiene ningun valor muestre un texto "No contacted" ???

Intenté hacer con :

IF(max(re.status_2)='NULL', 'No Contacted', max(re.status_2)) as status_2

Pero no sale. Gracias.
__________________
EL LIMITE ES EL UNIVERSO
  #4 (permalink)  
Antiguo 18/05/2006, 08:25
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 19 años
Puntos: 5
puedes intentar:

Código PHP:
//
SELECT po.provider_namepo.websiteco.phone_codeIFNULL(max(re.status_2),'No Contacted') as status_2
FROM remarks re RIGHT JOIN 
provider po RIGHT JOIN countries co ON (co.name=po.country) ) ON (re.provider_id=po.provider_id)
GROUP BY po.provider_id 
saludos..., cya
__________________
"El Conocimiento es de todos, no solo de algunos"
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 22:27.