微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQL-如何为购物应用编写简单请求

如何解决SQL-如何为购物应用编写简单请求

实际上,我刚刚用这种结构构建了数据库

enter image description here

因此用户可以做多个订单。 每个订单可以有多个项目。

但是我无法编写良好的sql请求来获得良好的结果。

我需要一个不同订单的列表,在每个订单上我都可以看到:每个项目及其数量和订购用户邮件

我认为结构还可以,但是我需要良好的sql请求。

谢谢!


数据示例:(我删除了无用的东西)

items

id   name    price
1    Cola    3
2    Pepsi   2

user

id   email
1    test@admin.com
2    user@test.com

orders

id   date                   user_id
1    2018-09-24 00:00:00    1
2    2018-09-23 00:00:00    2

order_items(ID有用吗?)

id   order_id   items_id   quantity
1    1          1          2
2    1          2          3
3    2          2          8

我想拥有的东西:(在前端)。但是我知道在sql结果中列出像这样的项目是不可能的。

order 1

date                 user                   items
2018-09-24 00:00:00  admin@test.com         Cola x2,Pepsi x3

order 2

date                 user                   items
2018-09-23 00:00:00  user@test.com          Pepsi x8

解决方法

将返回所有信息的查询:

select o.id "order id",o.date "order date",u.email "email",i.name "item",oi.quantity "quantity"
  from orders
       inner join order_items oi on oi.orders_id = o.id
       inner join user u on u.id = o.user_id
       inner join items i on i.id = oi.items_id
 order by o.id

o.id的顺序有助于处理结果集:同一顺序的所有项目都在一起。可以帮助编写一些control-break逻辑

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?