【发布时间】:2019-02-19 05:43:07
【问题描述】:
我有两个 SQL 表,“Debits”和“Debits_Line_Items”。我想对“Debits”表运行 SQL 查询,其中每个借记记录都包含“Debits_Line_Items”表中相应记录的列表,该列表应与 CartID 值匹配。
这是我尝试过的,它产生了“lineItems”列未知的错误:
SELECT
CartID AS cartId,
TotalCost AS totalCost,
lineItems
FROM Debits
LEFT JOIN
(
SELECT
Price AS cost,
Quantity AS quantity,
TotalPrice as total
FROM Debits_Line_Items
WHERE UserID = 9902
) AS lineItems
ON Debits.CartID = lineItems.CartID
WHERE UserID = 9902
这就是我所希望的:
[
{
cartId: 3225,
totalCost: 212,
lineItems: [
{
cost: 32,
quantity: 1,
total: 32
},
{
cost: 60,
quantity: 3,
total: 180
},
},
{
cartId: 3226,
totalCost: 75,
lineItems: [
{
cost: 15,
quantity: 5,
total: 75
}
}
]
【问题讨论】:
-
您能提供一些示例数据吗?你想从 mysql 中获取 json 字符串吗?
-
你的mysql版本是多少?
-
能分享一下这里用到的表的表结构吗?
-
您尚未从表
Debits_Line_Items中选择CartID列。那么只有你可以使用ON Debits.CartID = lineItems.CartID -
lineitems 是子查询别名而不是列名。您的选择应按名称 (lineitmes.
) 或所有 lineitems.* 引用所有列名