Mon scénario: Il existe 3 tables pour stocker des informations sur les émissions télévisées; saison, épisode et épisode_translation.Aide SQL LEFT JOIN
Mes données: Il y a 3 saisons, avec 3 épisodes chacun, mais il n'y a que la traduction pour un épisode.
Mon objectif: Je veux obtenir une liste de toutes les saisons et tous les épisodes d'un spectacle. S'il y a une traduction disponible dans une langue spécifiée, montrez-la, sinon affichez null.
Ma tentative pour obtenir la série 1 des informations dans la langue 1:
SELECT
season_number AS season,number AS episode,name
FROM
season NATURAL JOIN episode
NATURAL LEFT JOIN episode_trans
WHERE
id_serie=1 AND
id_lang=1
ORDER BY
season_number,number
Résultat:
+--------+---------+--------------------------------+
| season | episode | name |
+--------+---------+--------------------------------+
| 3 | 3 | Episode translated into lang 1 |
+--------+---------+--------------------------------+
résultat attendu
+-----------------+--------------------------------+
| season | episode| name |
+-----------------+--------------------------------+
| 1 | 1 | NULL |
| 1 | 2 | NULL |
| 1 | 3 | NULL |
| 2 | 1 | NULL |
| 2 | 2 | NULL |
| 2 | 3 | NULL |
| 3 | 1 | NULL |
| 3 | 2 | NULL |
| 3 | 3 | Episode translated into lang 1 |
+--------+--------+--------------------------------+
DB pleine vidage http://pastebin.com/Y8yXNHrH
Ceci devrait être balisé MySQL –
Quelle version de SQL? – AllenG
Vous spécifiez id_lang = 1 dans votre clause where. Si vous enlevez cela, cela renvoie-t-il le résultat attendu? – Shaded