select *
FROM customer c
WHERE NOT EXISTS (SELECT 1 from products p
WHERE p.customer_id = c.id)
У вас действительно (как уже предлагали @Tony andrews и @Adrian) должна быть третья таблица для хранения сведений о том, какие клиенты купили какой продукт.
Что-то вроде:
**Customer**
Id
Name
Address
Phone
**Product**
Id
Name
Price
**Customer_Product**
customer_id
product_id
Это означает, что вы удаляете избыточность из таблицы продуктов.Подумайте, что вам нужно сделать, если название продукта изменилось незначительно - вместо обновления нескольких строк (как вы должны были бы сделать сейчас), вам нужно будет обновить только 1 строку, и вам не нужно будет прикасаться кистория транзакций вообще ..