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)