我有一张名为客户的表格。客户拥有 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问题。这是一个加入吗?联盟?
答案 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
从中提取您想要的数据。