SQL 购物车的左连接语句
SQL Left-Join Statement for cart
有人可以为我解释这个 sql 代码吗?我们用它来将商品添加到购物车
SELECT
c.crt_id,
i.item_id,
i.item_name,
i.price,i.image
FROM
cart c
LEFT JOIN item i ON c.item_id = i.item_id
WHERE
c.customer_no = 1
AND
c.delete_flg = 0
cart c LEFT JOIN item i
检索所有购物车及其物品,与 WHERE c.customer_no = 1 AND c.delete_flg = 0
子句相关。
LEFT JOIN
表示无论购物车是否有物品都会被检索。一个简单的 JOIN
(等于 INNER JOIN
)只会使购物车至少包含 1 件商品。
- 它获取 table 购物车中的所有元素,并查看是否每个元素在 table 项中都有一个匹配结果,将两个 table 加入 item_id。如果有匹配条目,它将 return 所有组合。如果没有,它将 return 来自 table 购物车的条目和 null 作为 table 项目的结果。
- 通过 customer_no(table 购物车)为 1 和 delete_flag(table 购物车)为 0 过滤先前的结果。
- 它只是 return 包含在 select 和 from 语句之间的列。
这条语句:
SELECT c.crt_id, i.item_id, i.item_name, i.price, i.image
FROM cart c LEFT JOIN
item i
ON c.item_id = i.item_id
WHERE c.customer_no = 1 AND c.delete_flg = 0;
returns 客户 1
所有未删除购物车的所有项目。如果购物车中的商品不在 item
table 中,则仍会返回一行,但除第一列外的所有商品都是 NULL
.
它不会修改数据库中的任何数据,因为它是一个 SELECT
查询。如果它对购物车做了任何事情,那么就是在查询返回的结果上使用 UPDATE
/INSERT
/DELETE
(或类似的东西)的后续代码。
SELECT
c.crt_id,
i.item_id,
i.item_name,
i.price,
i.image
FROM cart c
LEFT JOIN item i ON c.item_id = i.item_id -- return all items from cart regardless of if the customer has an order or not
WHERE c.customer_no = 1 -- only fetches data for customer no 1
AND c.delete_flg = 0 -- as long as the there is no items in cart that is deleted
因此,return 购物车中的所有商品,无论客户是否有订单,并且他没有从 1 号客户的购物车中移除任何商品。
有人可以为我解释这个 sql 代码吗?我们用它来将商品添加到购物车
SELECT
c.crt_id,
i.item_id,
i.item_name,
i.price,i.image
FROM
cart c
LEFT JOIN item i ON c.item_id = i.item_id
WHERE
c.customer_no = 1
AND
c.delete_flg = 0
cart c LEFT JOIN item i
检索所有购物车及其物品,与 WHERE c.customer_no = 1 AND c.delete_flg = 0
子句相关。
LEFT JOIN
表示无论购物车是否有物品都会被检索。一个简单的 JOIN
(等于 INNER JOIN
)只会使购物车至少包含 1 件商品。
- 它获取 table 购物车中的所有元素,并查看是否每个元素在 table 项中都有一个匹配结果,将两个 table 加入 item_id。如果有匹配条目,它将 return 所有组合。如果没有,它将 return 来自 table 购物车的条目和 null 作为 table 项目的结果。
- 通过 customer_no(table 购物车)为 1 和 delete_flag(table 购物车)为 0 过滤先前的结果。
- 它只是 return 包含在 select 和 from 语句之间的列。
这条语句:
SELECT c.crt_id, i.item_id, i.item_name, i.price, i.image
FROM cart c LEFT JOIN
item i
ON c.item_id = i.item_id
WHERE c.customer_no = 1 AND c.delete_flg = 0;
returns 客户 1
所有未删除购物车的所有项目。如果购物车中的商品不在 item
table 中,则仍会返回一行,但除第一列外的所有商品都是 NULL
.
它不会修改数据库中的任何数据,因为它是一个 SELECT
查询。如果它对购物车做了任何事情,那么就是在查询返回的结果上使用 UPDATE
/INSERT
/DELETE
(或类似的东西)的后续代码。
SELECT
c.crt_id,
i.item_id,
i.item_name,
i.price,
i.image
FROM cart c
LEFT JOIN item i ON c.item_id = i.item_id -- return all items from cart regardless of if the customer has an order or not
WHERE c.customer_no = 1 -- only fetches data for customer no 1
AND c.delete_flg = 0 -- as long as the there is no items in cart that is deleted
因此,return 购物车中的所有商品,无论客户是否有订单,并且他没有从 1 号客户的购物车中移除任何商品。