WHERE (user_id = 17 OR user_id IS NULL) AND name = "menu_items"
I po prostu posprzątaj resztę zapytania:
id w zdefiniowanych preferencjach nie musi tam być, użyj kombinacji klucza preference_id i user_id zamiast tego.
Jeśli id preferences został nazwany preference_id , długi ON oświadczenie można zastąpić USING(preference_id)
IF funkcja może być zastąpiona przez COALESCE(defined_value, default_value)