我正在从事像电子商务这样的项目,我需要从关系数据库中获取数据。对于主数据,我还需要将其他类型的数据存储为主数据中的数组。例如,当我选择有关订单的信息时,我将从该表中获取主要数据:
order
id | id_payment | id_status | date | value | discount |...
这将为我返回一个对象。然后,我将从表order_products
获取与此订单相关的产品列表,例如:
order_products
id | id_order | name | description | value | ...
在我得到这些信息之后,我将作为json发送到前端,类似这样的事情:
{
id: 1,
date: 2017-01-22,
value: 27.90,
products: [
{id: 18, name: 'shoes', description...},
{id: 23, name: 'dress', description...}
{id: 41, name: 'Tie', description...}
]
}
当我想将这些额外信息作为数组/对象存储在主数据中时,我正在使用这样的查询:
$order = get("SELECT id, date, value FROM order WHERE id = :id");
$order['products'] = get("SELECT id, name, description FROM order_products WHERE id_order = :id");
$order['payment'] = get("SELECT id, name, icon, label FROM payment WHERE....")[0];
因此,对于我希望插入主数据的每个array/object
,我正在做额外的SELECT
。有没有办法将所有这些都移到主SELECT中?或者我正在做的方式是实现这一目标的最好/唯一方法吗?