您如何通过MySQL和Go解决围绕LEFT JOIN
和null值的问题?
例如,我有两个表order
和order_item
。所有列均具有not null
属性。一个订单可以有0个或多个order_items。没有任何order_items的订单的简单选择,左联接查询失败Row.Scan()
,因为order_item列返回为null:
SELECT * FROM `order`
LEFT JOIN `order_item` USING (order_id)
WHERE `order`.order_id = '123'
我可以看到三种解决方案,但我认为没有一种是真的很好。
COALESCE
/ IFNULL
=>令人讨厌,因为我选择的查询部分是自动生成的。您还有其他解决方案吗?
答案 0 :(得分:2)
您可以使用选项2,但不必扫描结构并不必更改结构类型,而可以扫描具有可空数据类型的临时变量,并根据这些变量的有效性将其值复制到结构中。非空类型。