Извиняюсь, если это очевидно, но я не очень хорош в SQL.У меня есть несколько таблиц, которые все должны быть объединены, но один из столбцов может быть нулевым.
У меня есть этот запрос:
select orders.ordnum, orders.tstamp, orders.sku, code, redeemed_order_num, null as redeemed_date, null as fullname
from customer_subscriptions orders
join bulk_codes codes
on codes.bulk_order_id = orders.subscription_id
where (orders.sku="bulk-box" or orders.sku="bulk-book") and redeemed_order_num is null
union
select orders.ordnum, orders.tstamp, orders.sku, code, redeemed_order_num, redeemed_orders.date redeemed_date, customers.fullname
from customer_subscriptions orders
join bulk_codes codes
on codes.bulk_order_id = orders.subscription_id
join customer_subscriptions redeemed_orders
on codes.redeemed_order_num = redeemed_orders.ordnum
join customers
on customers.cid = redeemed_orders.cid
where (orders.sku="bulk-box" or orders.sku="bulk-book")
Верхний выбор возвращает первые 9 строк инижняя возвращает одну строку.
Результаты: ![Screenshot of results](https://i.stack.imgur.com/cPTj5.png)
Есть ли способ оптимизации?
Полная схема здесь: https://pastebin.com/FXGLetcV