INSERT INTO users (username, password, phone) VALUES ('user1', 'password1', '1234567890'), ('user2', 'password2', '1234567891'), ('user3', 'password3', '1234567892'), ('user4', 'password4', '1234567893'), ('user5', 'password5', '1234567894'), ('user6', 'password6', '1234567895'), ('user7', 'password7', '1234567896'), ('user8', 'password8', '1234567897'); INSERT INTO products (product_name, product_description, product_price) VALUES ('product1', 'description1', 9.99), ('product2', 'description2', 19.99), ('product3', 'description3', 8.99), ('product4', 'description4', 25.49), ('product5', 'description5', 45.99), ('product6', 'description6', 49.99); INSERT INTO shopping_cart (user_id, product_id, quantity) VALUES (1, 1, 3), (2, 3, 6), (3, 4, 5), (4, 1, 3), (5, 2, 4), (6, 5, 3), (7, 4, 4), (8, 1, 3); /*添加商品到购物车:*/ INSERT INTO shopping_cart (user_id, product_id, quantity) VALUES (9, 2, 3) /*更改购物车中商品数量*/ UPDATE shopping_cart SET quantity = 4 WHERE user_id = 1 AND product_id = 2 -- 以下是实现下订单功能,并在下了订单之后,把商品从购物车里删除 /*首先将购物车中的商品信息插入到 orders 表中,生成订单:*/ INSERT INTO orders (user_id, product_id, quantity, total) SELECT user_id, product_id, quantity, SUM(quantity * product_price) FROM shopping_cart JOIN products ON shopping_cart.product_id = products.product_id WHERE user_id = 1 GROUP BY user_id, product_id /*显示订单详情:*/ SELECT u.username, p.product_name, o.quantity, o.total, order_date FROM orders o JOIN users u ON u.user_id = o.user_id JOIN products p ON p.product_id = o.product_id /*然后删除购物车中对应的商品*/ DELETE FROM shopping_cart WHERE user_id = 1 AND product_id = 2;哪里错了,运行不成功
时间: 2023-12-31 11:03:47 浏览: 145
mssql insert into 和insert into select性能比较
5星 · 资源好评率100%
这段代码有几个问题:
1. 在添加用户数据时,缺少创建 users 表的语句,因此无法运行。
2. 在添加商品数据时,缺少创建 products 表的语句,因此无法运行。
3. 在添加购物车数据时,缺少创建 shopping_cart 表的语句,因此无法运行。
4. 在添加购物车数据时,user_id = 9 不存在于 users 表中,因此会出现外键约束错误。
5. 在更改购物车中商品数量时,语句缺少 SET 关键字,应该为:UPDATE shopping_cart SET quantity = 4 WHERE user_id = 1 AND product_id = 2;
6. 在将购物车中的商品信息插入到 orders 表中生成订单时,SELECT 语句中的 WHERE 子句应该为 WHERE user_id = 1 AND product_id = 2,因为此时只需要将购物车中的一件商品生成订单。
7. 在将购物车中的商品信息插入到 orders 表中生成订单时,GROUP BY 子句中应该只包含 user_id 和 product_id,因为这两个字段可以唯一确定一个订单。
8. 在将购物车中的商品信息插入到 orders 表中生成订单时,SUM(quantity * product_price) 应该改为 SUM(shopping_cart.quantity * products.product_price),因为需要计算每个商品的总价。
9. 在将购物车中的商品信息插入到 orders 表中生成订单时,缺少插入 order_date 的语句,应该为:INSERT INTO orders (user_id, product_id, quantity, total, order_date) SELECT user_id, product_id, quantity, SUM(shopping_cart.quantity * products.product_price), NOW() FROM shopping_cart JOIN products ON shopping_cart.product_id = products.product_id WHERE user_id = 1 AND product_id = 2 GROUP BY user_id, product_id;
10. 在显示订单详情时,orders 表中缺少 user_id 和 product_id 对应的用户名和商品名,应该使用 JOIN 语句关联 users 和 products 表。
阅读全文