Foros del Web » Programando para Internet » PHP »

consulta con dos tablas y ordenar por una

Estas en el tema de consulta con dos tablas y ordenar por una en el foro de PHP en Foros del Web. Buenas compañeros: Tengo un problemilla con el cual llevo ya semana y media y necesito tenerlo listo para mañana Tengo dos tablas, clientes y procesos. ...
  #1 (permalink)  
Antiguo 11/12/2006, 11:17
Avatar de susaninhax  
Fecha de Ingreso: noviembre-2004
Mensajes: 358
Antigüedad: 19 años, 5 meses
Puntos: 3
Exclamación consulta con dos tablas y ordenar por una

Buenas compañeros:

Tengo un problemilla con el cual llevo ya semana y media y necesito tenerlo listo para mañana

Tengo dos tablas, clientes y procesos. De la tabla clientes quiere mostrar campos tipo nombre, apellidos, etc. y de la tabla Procesos quiero el campo estado Y no tengo ni idea de como hacer para que me seleccione todos los clientes pero me los ordene por el campo estado.

tabla clientes {id_cliente, nombre, apellidos}
tabla procesos { id_proceso, id_cliente, id_convencion, estado}
He intentado esto:

Código PHP:
$sql="select id_cliente, nombre, apellidos, cargo, ciudad, sector, estado
    from clientes 
    where activo='si'     
             order by estado
    LIMIT "
.$limitInf.",10";    


$result=mysql_query($sql$link)or die (mysql_error());

while (
$row=mysql_fetch_array($result)) {
$id_cliente=$row["id_cliente"];
$nombre=$row["nombre"];
$apellidos=$row["apellidos"];
$cargo=$row["cargo"];
$ciudad=$row["ciudad"];
$sector=$row["sector"];


$sql_proces="select estado
from proceso_convenciones
where id_cliente='$id_cliente'
and id_convencion='"
.$_GET["id_convencion"]."'";

$result_proces=mysql_query($sql_proces$link)or die (mysql_error());
$row_proces=mysql_fetch_array($result_proces);
$estado=$row_proces["estado"]; 
Así consigo que me muestre todos los clientes, y me indica cual tiene estado positivo o negativo, pero ahora quieren que aparezca la lista igualmente de clientes pero ordenados por el estado.
Ami me da que es imposible de hacer, no lo consigo no se como hacer, he mirado libros de mysql y no consigo sacar nada en claro, he probado el left join pero me devuelve null los valores que no comparten las tablas:_( como nombre por ejemplo. Hay algun modo?????

es muy importante porfa y creo que además es una consulta interesante.

Muchísimas gracias de antemano por la ayuda, voy a estar actualizando cada dos por tres.. argg!!
  #2 (permalink)  
Antiguo 11/12/2006, 11:44
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Re: consulta con dos tablas y ordenar por una

Hola!

tu tema es mas bien de base de datos... pero bueno...

xq no haces una left join sin q te coja los nulls?

Código PHP:
Consultilla="Select tabla1.campo1, tabla2,campo1 
FROM tabla1 LEFT JOIN tabla2 ON tabla1.campo1=tabla2.campo1
WHERE tabla1.campo2  is not null"

EDITADO:
la left join te muestra todos los registros de una tabla aunke no tengan similitudes con la otra tabla.
si esto no te interesa y solo quieres mostrar los clientes q estan en ambas prueba con la INNER JOIN.

saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #3 (permalink)  
Antiguo 11/12/2006, 12:00
Avatar de susaninhax  
Fecha de Ingreso: noviembre-2004
Mensajes: 358
Antigüedad: 19 años, 5 meses
Puntos: 3
Pregunta Re: consulta con dos tablas y ordenar por una

podría ser algo tal que así?????????

Código PHP:
$sql="SELECT clientes.id_cliente,
proceso_convenciones.id_cliente,
clientes.nombre,
clientes.apellidos,
clientes.ciudad,
proceso_convenciones.estado
FROM
clientes
Left Join proceso_convenciones ON clientes.id_cliente=proceso_convenciones.id_cliente
order by proceso_convenciones.estado, proceso_convenciones.apellidos desc
LIMIT "
.$limitInf.",10"
Donde le puedo indicar eso de is not null, si le pongo eso me devolverá el valor real que tiene el campo no????
que cacaoo!! muchas gracias por contestar
  #4 (permalink)  
Antiguo 11/12/2006, 12:30
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 20 años, 5 meses
Puntos: 5
Re: consulta con dos tablas y ordenar por una

Ay ay ay susanita :P... a ver IS NOT NULL, para que solamente muestre registros cuyo campo no es nulo, entonces si dices que el campo clientes.nombre muestra nulos sería WHERE clientes.nombre IS NOT NULL, de todas maneras prueba con INNER JOIN o RIGHT JOIN

Besiños
__________________
Carpe diem quam minimum credula postero.


http://www.programador-freelance.es
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 21:51.