Jeden problem wygląda jak wyrażenie dla mode kolumna. Podzapytanie w wyrażeniu CASE powinno zwrócić jedno wyrażenie i jeden wiersz. Zamiast SELECT * powinno być SELECT <expr> i powinna istnieć klauzula LIMIT 1, jeśli istnieje możliwość zwrócenia więcej niż jednego wiersza.
Jeśli potrzebujesz więcej niż jednego wyrażenia, musisz powtórzyć to wyrażenie CASE z innym podzapytaniem lub możesz potrzebować operacji JOIN.