1

我有一张名为Customers的表。客户有一个id和一个name和一个address

我有一个名为Orders的表。订单有一个id、一个customerId和一个quantity

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

[{
    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 问题。这是加入吗?工会?

4

2 回答 2

2

它将是您的客户和订单表之间的连接。如果您只想要有订单的客户,您将使用内部联接。如果您希望客户无论是否有订单,请使用外连接。

内连接示例:

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

左外连接示例:

SELECT Customers.Name, Customers.Address, Orders.Quantity
FROM
Customers 
LEFT JOIN
Orders
ON Customers.Id = Orders.CustomerId
于 2013-05-07T22:30:48.607 回答
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

从中提取您想要的数据。

于 2013-05-07T22:30:53.037 回答