将查询附加为单独的对象

时间:2013-05-07 22:26:01

标签: mysql sql

我有一张名为客户的表格。客户拥有 id 名称以及地址

我有一张名为订单的表格。订单包含 id customerId 数量

我必须实现一个返回如下内容的函数:

[{
    id: 123,
    name: "Jane Doe",
    address: "123 Fake Street",
    orders: [
        {
            id: 8,
            customerId: 123,
            quantity: 2
        },
        {
            id: 456,
            customerId: 123,
            quantity: 100
        }
    ]
}]

我正在使用MySQL 5.6.11,我怀疑这是一个基本的SQL问题。这是一个加入吗?联盟?

2 个答案:

答案 0 :(得分:2)

您的客户和订单表之间将是加入。 如果您只想要有订单的客户,您将使用内部联接。 如果您想要客户,无论他们是否有订单,请使用外部联接。

示例内联:

SELECT Customers.Name, Customers.Address, Orders.Quantity
FROM
Customers 
INNER JOIN
Orders
ON Customers.Id = Orders.CustomerId

Left Outer Join示例:

SELECT Customers.Name, Customers.Address, Orders.Quantity
FROM
Customers 
LEFT JOIN
Orders
ON Customers.Id = Orders.CustomerId

答案 1 :(得分:0)

select c.id,c.name,c.address,o.id,o.quantity 
from customer c, orders o 
where o.customerId = c.id;

这将返回;

123,Jane Doe,123 Fake Street,8,8 123,Jane Doe,123 Fake Street,456,100

从中提取您想要的数据。