Я пытаюсь объединить две таблицы: клиенты и товары, чтобы затем создать отчет о продажах по клиентам. У меня 2000 клиентов и 2000 предметов.
SELECT customer_name FROM customers; --Takes 100ms
SELECT item_number FROM items; --Takes 50ms
SELECT customer_name, item_number FROM customers CROSS JOIN items; Takes 200000ms
Я знаю, что это 4 миллиона строк, но можно ли заставить его работать быстрее? Я хочу в конечном итоге присоединиться к этому с таблицей продаж, как это:
SELECT customer_name, item_number, sales_total FROM customers CROSS JOIN items LEFT JOIN sales ON (customer.customer_name = sales.customer_name, item.item_number=sales.item_number);
Очевидно, что в таблице продаж будут указаны не все клиенты или не все товары, поэтому цель состоит в том, чтобы получить отчет, в котором будут показаны все клиенты и все товары, а также то, что было продано и не продано.
Я использую PostgreSQL 8.4