вопрос некоректен вот почему: непонятно как нужно реагировать на отсуствие записей в одной из таблиц, нет инфы хотябы о первичных ключах в таблицах (о вторичных уже можно будет догадаться). Кроме того просто maker сам по себе не интересен: нужны либо дополнительные поля, либо условие.
Поэтому приведу простой пример, который работает если все таблицы имеют данные.
select pd.maker from pc, laptop lp, printer pr, product pd
where pc.model=pd.model
and pc.model=lp.model and pc.code=lp.code
and pc.model=pr.model and pc.code=pr.code
Причем данные в некоторых случаях будут повторяться из-за указанных выше причин.
Если же всетаки есть желание сделать список чохом, объединив все таблицы в листе оператором UNION (предположил тоько по тегу), то команда должна быть примерно такой
select code, speed, ram, hd, screen, '' as cd, '' as color, price, maker, pd.model, pd.type from Product pd, Laptop lp where pd.model=lp.model
UNION
select code, '' as speed, '' as ram, '' as hd, '' as screen, '' as cd, color, price, maker, pd.model, pd.type from Product pd, Printer pt where pd.model=pt.model and pd.type=pt.type
UNION
select code, speed, ram, hd, '' as screen, cd, '' as color, price, maker, pd.model, pd.type from Product pd, PC pc where pd.model=pc.model