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

Seleccionar un campo según sea cero o distinto a cero

Estas en el tema de Seleccionar un campo según sea cero o distinto a cero en el foro de Mysql en Foros del Web. Hola compañeros, ¿como puedo hacer una consulta para que se añada un campo en el resultado si el valor de ese campo es distinto a ...
  #1 (permalink)  
Antiguo 04/07/2012, 19:02
 
Fecha de Ingreso: enero-2010
Mensajes: 389
Antigüedad: 14 años, 3 meses
Puntos: 4
Seleccionar un campo según sea cero o distinto a cero

Hola compañeros,

¿como puedo hacer una consulta para que se añada un campo en el resultado si el valor de ese campo es distinto a cero y si es cero que se ignore esa condición? la condición que hablo sería el AND tabla.elementoSiDistintoCero

La consulta que tengo creada es:
SELECT campo1, campo2, campoSiDistintoCero
FROM tabla1, ...
WHERE ...
...
AND tabla1.campoSiDistintoCero
...

El problema con esta consulta es que si el campo es cero el resultado de la consulta es cero y no me muestra nada y quiero que se mostrase todos los campos y en este por ejemplo 0 como valor.

Un saludo.
  #2 (permalink)  
Antiguo 04/07/2012, 19:24
 
Fecha de Ingreso: enero-2010
Mensajes: 389
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: Seleccionar un campo según sea cero o distinto a cero

Buscando más he encontrado el uso del JOIN, por lo que he implementado quedando así la consulta original:
SELECT p.nombre, especies.nombre AS especie, especies_cruce.nombre AS especie_cruce
FROM animales AS p, especies, especies AS especies_cruce
LEFT JOIN animales ON especies.id = animales.id_especie_cruce
AND p.id_especie = especies.id

siendo animales.id_especie_cruce el campo que quiero que aparezca como NULL (o cero) pero MySQL me devuelve el error #1054 - Unknown column 'especies.id' in 'on clause'

Última edición por erxaca; 04/07/2012 a las 19:36
  #3 (permalink)  
Antiguo 05/07/2012, 02:48
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Seleccionar un campo según sea cero o distinto a cero

Tienes mal construidas las condiciones de join

Código MySQL:
Ver original
  1. SELECT p.nombre,
  2.              especies.nombre AS especie,
  3.              especies_cruce.nombre AS especie_cruce
  4. FROM (animales AS p LEFT JOIN especies ON // Condición que relaciona animales y especies)
  5.          LEFT JOIN especies AS especies_cruce  ON //Condicion que relaciona lo anterior con la segunda instancia de especies

el error concreto te esta diciendo que la tabla especies no tiene un campo llamado id quizas porque no usas el alias.

Si no lo solucionas muestera la lista de campos de las dos tablas y explicanos la relacion que buscas.

La sintaxis de JOIN es

((tabla1 ALIAS MODIFICADOR JOIN tabla2 ALIAS ON condicion) MODIFICADOR JOIN tabla3 ALIAS ON condicion)....

Si pones alias debes usarlos en el resto de la query.

No se entiende que quieres hacer aquí

FROM animales AS p, especies, especies AS especies_cruce
LEFT JOIN animales
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 05/07/2012 a las 02:56
  #4 (permalink)  
Antiguo 05/07/2012, 18:46
 
Fecha de Ingreso: enero-2010
Mensajes: 389
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: Seleccionar un campo según sea cero o distinto a cero

Muchas gracias quimfv me solucionaste el problema, con tu ejemplo lo solucioné rápidamente ;)

Un saludo

Etiquetas: cero, distinto, según, select, tabla, campos
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 16:08.