您如何使用 MySQL 和 Go 解决围绕 's 和 null 值的问题LEFT JOIN
?
例如我有两个表order
和order_item
。所有列都具有该not null
属性。一个订单可以有 0 个或多个 order_items。没有任何 order_items 的订单的简单选择、左连接查询失败, Row.Scan()
因为 order_item 列返回为空:
SELECT * FROM `order` LEFT JOIN `order_item` USING (order_id) WHERE `order`.order_id = '123'
我可以看到三个解决方案,但我认为没有一个是真正好的:
使用COALESCE
/ IFNULL
=> 烦人,因为我的查询选择部分是自动生成的。
使用 mysql go lib 中的空值 => 这意味着我的 order_item 结构中的每个值都属于这些类型。
将查询拆分为 2 => 问题,如果我想要一个包含 50 个带有 order_items 的订单的列表,那将是 51 个查询。
您还有其他解决方案吗?
慕妹3146593
相关分类