您如何使用 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 個查詢。您還有其他解決方案嗎?
1 回答

慕妹3146593
TA貢獻1820條經驗 獲得超9個贊
您可以使用選項 2,但不必掃描到您的結構并更改結構的類型,您可以掃描到具有可為空數據類型的臨時變量,并根據這些變量的有效性,將它們的值復制到具有不可為空的結構中類型。
- 1 回答
- 0 關注
- 159 瀏覽
添加回答
舉報
0/150
提交
取消