WHERE (user_id = 17 OR user_id IS NULL) AND name = "menu_items"
Och bara för att rensa upp resten av frågan:
id i de definierade inställningarna behöver inte finnas där, använd en kombinerad nyckel av preference_id och user_id istället.
Om id av preferences fick namnet preference_id , den långa ON sats kan ersättas med USING(preference_id)
IF funktionen kan ersättas med COALESCE(defined_value, default_value)