 <p>Here You have two options. Either do this by subselects or once per save/update walk through all the information descriptions and update the missing languages with the texts from the default ones.</p> <p>The first solution could be:</p> <pre><code>SELECT id.information_id, id.language_id, id.description, CASE WHEN id.title IS NOT NULL /* or CASE WHEN id.title &lt;&gt; '' - depending on the real value in DB when it's empty */ THEN id.title ELSE (SELECT title FROM information_description WHERE language_id = 1) AS title FROM information_description id WHERE id.language_id = 2 </code></pre> <p>I would call such query only in the case when the language ID differs from the default one. Since this may look like working solution I don't like it simply because it increases the DB effort.</p> <p>Instead of this I recommend to simply update Your missing data in similar way (this could be done maybe only once per life and you are done):</p> <pre><code>UPDATE information_description id SET id.title = (SELECT title FROM information_description WHERE language_id = 1 AND information_id = id.information_id) WHERE id.language_id &lt;&gt; 1 AND id.title IS NULL </code></pre> <p>for title and</p> <pre><code>UPDATE information_description id SET id.description = (SELECT description FROM information_description WHERE language_id = 1 AND information_id = id.information_id) WHERE id.language_id &lt;&gt; 1 AND id.description IS NULL </code></pre> <p>for description fields...</p>