我需要进行一对多联合SQL查询,例如为所有客户选择所有订单。
一个客户可以有很多订单。
SELECT
C.firstName,
C.lastName,
O.invoiceID,
O.description
FROM Customers AS C
LEFT JOIN Orders AS O
ON Customers.ID = Orders.CustomerID
每个返回的行都将包含客户姓名的副本,其中包含不同的订单数据。
我确实需要有客户'结果中的名称,但我不确定是否可以在每一行中不必要地复制名称。这是浪费记忆吗?我是否应该更好地在加入的选择中包含客户ID,然后单独选择以通过客户ID获取客户名称?什么是最佳做法?
更新:我理解权衡取决于它。我的问题是,是否有一些内部DBMS或驱动程序优化(在最流行的DBMS中)通过共享重复字段的内存来防止此类连接选择中不必要的内存浪费。