Ver Mensaje Individual
  #4 (permalink)  
Antiguo 11/11/2013, 12:15
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: ¿ Hacer un SELECT listando primero los valores superiores a cero ?

Yo no usaría el asterisco, sino los nombres de los campos de las tablas familias y categorías, en el mismo orden. Yo usaría INNER JOIN para relacionar las tablas. Y ordenaría al final por esos campos a los que he añadido alias.
Código MySQL:
Ver original
  1. (SELECT familias.*, categorias.*, '0' crit1orden, familia_num_orden crit2orden FROM familias INNER JOIN categorias
  2. ON familias.categoria_id = categorias.id_categoria
  3. AND familias.categoria_id = $id_categoria
  4. AND familias.familia_num_orden > 0)
  5. (SELECT familias.*, categorias.*, '1' crit1orden, familia_num_orden crit2orden FROM familias INNER JOIN categorias
  6. WHERE familias.categoria_id = categorias.id_categoria
  7. AND familias.categoria_id = $id_categoria
  8. AND familias.familia_num_orden < 1)  ORDER BY crit1orden, crit2orden

Prueba y nos dices