Sobre el código que me diste, lo copié pero no devuelve los ítems que no tengan un título en ese idioma. (Además lo edité porque tenía un error en "BT.BT.title_lang"):
por
Así es la Base de Datos (es sólo de pruebas):
Código SQL:
Ver originalCREATE TABLE `books` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`title` VARCHAR(255) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=3 ;
INSERT INTO `books` VALUES(1, 'A Study in Scarlet');
INSERT INTO `books` VALUES(2, 'Scandal in Bohemia');
CREATE TABLE `books_titles` (
`book_id` INT(10) UNSIGNED NOT NULL,
`book_title` VARCHAR(255) COLLATE utf8_unicode_ci NOT NULL,
`title_lang` CHAR(2) COLLATE utf8_unicode_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
INSERT INTO `books_titles` VALUES(2, 'Escándalo en Bohemia', 'es');
INSERT INTO `books_titles` VALUES(2, 'La Aventura del Escándalo en Bohemia', 'es');
INSERT INTO `books_titles` VALUES(2, 'Un scandale en Bohême', 'fr');
INSERT INTO `books_titles` VALUES(2, 'Kuningas hädässä', 'fi');
INSERT INTO `books_titles` VALUES(1, 'Estudio en Escarlata', 'es');
INSERT INTO `books_titles` VALUES(1, 'Estudio en Rojo', 'es');
INSERT INTO `books_titles` VALUES(1, 'Étude en rouge', 'fr');
Además, como un libro puede cambiar ligeramente de título (en este caso sí, aunque no debiera ser), la tabla books_titles tiene varias entradas para un mismo book_id y el mismo title_lang. Me doy con un canto en los dientes que pueda asociar un único título correctamente, porque es posible que al encontrar varios resultados coincidentes no sepa qué devolver como book_title.
Gracias ayudarme en este tema. A ver si encontramos la solución
Un saludo.