How have you solved the issue around LEFT JOIN
's and null values with MySQL and Go?
For example I have two tables order
and order_item
. All columns have the not null
attribute. An order can have 0 or more order_items. A simple select, left join query of an order without any order_items fails Row.Scan()
because the order_item columns come back as null:
SELECT * FROM `order`
LEFT JOIN `order_item` USING (order_id)
WHERE `order`.order_id = '123'
I can see three solutions, none that I think are really good:
- Use
COALESCE
/IFNULL
=> Annoying because my select part of the query is automatically generated. - Use the null values from mysql go lib => This will mean that every value in my order_item struct will be of these types.
- Split the query into 2 => Problem if I want a list of 50 orders with order_items, that will be 51 queries.
Any other solutions you have?