Решение логической задачки про пять домов, животных, напитков, марок сигарет и национальностей на SQL выносит СУБД:
ссылка Что-то мне кажыццо они там перемудрили что-то с перемножением множеств. Надо бы сгенерить таблицу со всеми вариантами, а потом уже по ней исключать условиями задачи.