Ver Mensaje Individual
  #4 (permalink)  
Antiguo 08/12/2009, 15:10
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Seleccionar valor de una tabla u otra para ordenar

Muéstranos un ejemplo en tabla de los datos contenidos en ambas. Muchas veces ayuda a entender por qué no los devuelve.
Otra cosa es que sería bueno conocer la estructura de las tablas (el CREATE TABLE...).

Finalmente, debes recordar que un campo NULL no se puede emparejar con nada, por lo que tanto Books.id como Books_titles.book_id deben contener valores reales (incluyendo el caracter vacío, que no es el NULL) para poder cruzar datos. Esto último debería ser resuelto con el uso de LEFT JOIN, en tanto Boooks contenga todos los libros, y Books_titles dependa de ella.
¿Esto es así?

La prueba, ¿la hiciste copiando lo que yo postee, o hiciste una sentencia propia?

Probemos esto:
Código sql:
Ver original
  1. SELECT
  2.   B.id,
  3.   B.title,
  4.   IF(BT.BT.title_lang IS NULL, B.title, BT.book_title) titulo
  5. FROM books B LEFT JOIN books_titles BT ON B.id = BT.book_id
  6. WHERE BT.title_lang IN ('fi') OR BT.book_id IS NULL
  7. ORDER BY titulo;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)