我在获取所需的 SQL 输出时遇到问题。
我有两个这样的表:
tblOrder
ID User Status
1 1 0
2 1 0
3 2 1
表订单项
ID OrderID Product Quantity
1 1 A 2
2 1 B 1
3 2 A 3
4 2 B 1
5 2 C 1
6 3 A 2
我想要获得一个输出表,在其中可以查看状态为 0 的所有订单,还可以查看订单中的所有项目,如下所示:
Output
OrderID User Product Quantity
1 1 A 2
1 1 B 1
2 1 A 3
2 1 B 1
2 1 C 1
我尝试过使用不同版本的 INNER JOIN 等的所有 SQL 仅获取每个 OrderID 的第一行(tblOrder.ID
)。我应该如何编写 SQL 查询才能得到我想要的结果?
接下来,我想使用 PHP 以 JSON 格式打印输出,以便在另一台设备上运行的 C# 程序获得结果。最后结果应该插入到一个类中,例如:
Public class orderobject
{
public int OrderID { get; set; }
public int UserID { get; set; }
public String Product[] { get; set; } // Dont know if correct way to make array this way
public int Quantity[] { get; set; }
}
结果最终将被插入到包含此类对象的列表中。因此列表中的每个条目都是一个单独的订单,其中包含所有想要的订单数据。
我的想法是错误的还是我希望我的 SQL 最好的方式是只获取一个 Web 请求?我可以在 C# 代码中重新组织结果,并将其插入到那里的类中。
喜欢代码的编码员提及 https://stackoverflow.com/questions/29256560/sql-get-all-rows-from-first-table-with-specific-valu-and-add-all-related-rows-fr#comment46716410_29256560你应该JOIN
两者同表,适用O.Status = 0
使用WHERE
子句,然后使用ORDER BY
使用所需的方式对结果进行排序ASC
or DESC
基于升序或降序,如下所示。最好搭配因为它具有搜索、排序和操作列表的方法。
SELECT OI.OrderID, O.User, OI.Product, OI.Quantity
FROM tblOrder O
INNER JOIN tblOrderItem OI ON O.ID = OI.OrderID
WHERE O.Status = 0
ORDER BY OI.OrderID ASC, OI.Product ASC
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)