Mysql通过行表中的行数据筛选主表数据

有订单头表和订单行表。筛选出行表中包含某些商品的头表

1. 示例表

test_order

toubiao

test_order_line

hb

2. 实现

EXISTS(推荐)

优点:
使用内联,主表字段很多的情况下,需要写越来越多的聚合函数,sql编写复杂

查询订单行中包含梨子的订单:

SELECT od.order_num,od.order_amt
FROM test_order od
WHERE EXISTS (
   SELECT * 
	 FROM test_order_line odl
	 WHERE od.order_num = odl.order_num
	 AND odl.line_product_id IN ('00001')
)

re1

内联

先看下述sql:

SELECT od.order_num,od.order_amt,odl.line_product_name
FROM test_order od,test_order_line odl
WHERE
od.order_num = odl.order_num 
AND odl.line_product_id IN ('00001');

看似没有什么问题,但是如果不过滤product_id,或者过滤的多个商品单据中都存在就会出现重复行的情况
在这里插入图片描述

要加聚合函数,缺点就是随着查询字段的增多,要写很多聚合函数。

SELECT od.order_num,MAX(od.order_amt)
FROM test_order od,test_order_line odl
WHERE
od.order_num = odl.order_num 
AND odl.line_product_id IN ('00001','00002')
GROUP BY od.order_num;

res3

### 回答1: 可以使用DELETE语句删除MySQL表中的一数据。例如,假设我们有一个名为“users”的表,其中包含id、name和email列,我们想删除id为1的,则可以使用以下语句: ``` DELETE FROM users WHERE id = 1; ``` 这将从“users”表中删除id为1的。请注意,如果您没有指定WHERE子句,则会删除整个表格中的所有。因此,使用DELETE语句时一定要小心。 ### 回答2: 要删除MySQL表中的一数据,可以使用DELETE FROM语句。DELETE FROM语句用于从表中删除记录。 删除一数据的基本语法如下: DELETE FROM 表名 WHERE 条件; 在WHERE子句中,可以使用一个或多个条件来指定要删除的。例如,可以使用列名和相应的值来指定要删除的。 例如,假设有一个名为"student"的表,其中包含学生的姓名和年龄信息。现在要删除年龄为20的学生,可以使用以下语句来完成: DELETE FROM student WHERE age = 20; 执该语句后,所有年龄为20的学生的将被从表中删除。 删除一数据之前,务必要确认要删除的是正确的,以免删除了错误的数据。另外,删除操作是不可逆的,删除后的数据将无法恢复。因此,在执删除操作之前,最好先备份数据,以防止意外数据丢失。 删除数据是一种常见的数据库操作,但在实际应用中需要慎重使用。确保在删除之前正确地选择并确认要删除的数据,以免造成不可逆的影响。 ### 回答3: 在MySQL中,我们可以使用DELETE语句删除表中的一数据。DELETE语句用于从表中删除满足指定条件的。 删除表中一数据的基本语法如下: DELETE FROM 表名 WHERE 条件; 其中,表名代表要删除数据的表的名称,条件是一个用于筛选要删除的条件。条件可以是一个或多个列的比较操作,也可以是一个复杂的逻辑表达式。 例如,假设我们有一个名为students的表,该表包含以下列:id、name和age。如果我们想删除id为1的学生的记录,我们可以使用以下DELETE语句: DELETE FROM students WHERE id=1; 上述语句将删除满足条件id=1的整数据。 需要注意的是,DELETE语句将永久删除数据,因此在执DELETE操作之前,请确保已经备份了重要的数据,以防止意外删除。 另外,也可以使用LIMIT关键字来限制每次删除的数。例如,如果我们只想删除一数据,可以使用以下语句: DELETE FROM students WHERE id=1 LIMIT 1; 这样就只删除了id为1的第一数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小雅痞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值