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

Consula en dos tablas

Estas en el tema de Consula en dos tablas en el foro de Mysql en Foros del Web. Hola buenas, pensaba que ya tená solucionado el tema pero no consigo hacerlo. Tengo dos tablas: CLIENTES: id_codigo, nombre CONTROL: id_cliente, fecha_hoja Lo que necesito ...
  #1 (permalink)  
Antiguo 21/02/2011, 11:13
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 16 años, 6 meses
Puntos: 1
Consula en dos tablas

Hola buenas, pensaba que ya tená solucionado el tema pero no consigo hacerlo.

Tengo dos tablas:
CLIENTES: id_codigo, nombre

CONTROL: id_cliente, fecha_hoja

Lo que necesito es que en un SELECT me muestre el nombre del cliente de la tabla CLIENTES, si no existe en la tabla CONTROL y en caso de estar en la tabla CONTROL me lo tiene que mostrar si el campo fecha_hoja es diferente al año en el que estamos.

con el siguiente código consigo que me haga justo lo contrario, que me muestre los clientes que estan en las dos tablas y que el año actual coincide con fecha_hoja

Código PHP:
$sql="SELECT clientes.id_codigo, clientes.nombre, hojacontrolcliente.id_cliente, hojacontrolcliente.fecha_hoja FROM clientes, hojacontrolcliente WHERE clientes.id_codigo=hojacontrolcliente.id_cliente AND hojacontrolcliente.fecha_hoja LIKE '%$anioactual%' ORDER BY clientes.nombre"
Como puedo hacer la comparación contraria?
  #2 (permalink)  
Antiguo 21/02/2011, 11:25
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 10 meses
Puntos: 128
Respuesta: Consula en dos tablas

Prueba de esta forma :

Código PHP:
Ver original
  1. $sql="SELECT
  2. c.id_codigo,
  3. c.nombre,
  4. h.id_cliente,
  5. h.fecha_hoja
  6.  
  7. FROM
  8. clientes  AS c,
  9. hojacontrolcliente AS h
  10.  
  11. WHERE c.id_codigo != h.id_cliente
  12. AND h.fecha_hoja NOT LIKE '%$anioactual%'
  13. ORDER BY clientes.nombre";
  #3 (permalink)  
Antiguo 21/02/2011, 11:33
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Tema movido desde PHP a Mysql
  #4 (permalink)  
Antiguo 21/02/2011, 12:13
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: Consula en dos tablas

Hola GatorV mil disculpas por poner el mensaje donde no era.

No me he dado cuenta que era cosa de mysql.

Lo he probado y no me muestra nada

He modificado el codigo que tenia yo con lo que me has enviado y he conseguido que funcione con un pero.

Y es que ahora si que salen todos los registros pero duplicados menos los registros que estan en las dos tablas esos salen una sola vez

Código PHP:
$sql="SELECT clientes.id_codigo, clientes.nombre, hojacontrolcliente.id_cliente, hojacontrolcliente.fecha_hoja FROM clientes, hojacontrolcliente WHERE clientes.id_codigo!=hojacontrolcliente.id_cliente AND hojacontrolcliente.fecha_hoja NOT LIKE '%$anioactual%' ORDER BY clientes.nombre"
Un ejemplo:

Carlos
Carlos
Daniel
Daniel
Juan
Manolo
Manolo
Natalia


En este caso Juan y Natalia estan en las dos tablas el resto solo en la tabla clientes.

En un curso que realice el año pasado de PHP y Mysql ya me comentaron que con las consultas me volveria loco, que razón tienen.

Etiquetas: consula, dos, tablas
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 07:52.