我有两张表A和B,用时间bs分区,通过A,B表相同的sku和num,取A表bs=20230331时的ou和order和B表bs=20230401时的ou和order
时间: 2023-12-14 13:36:07 浏览: 28
可以使用以下SQL语句实现:
```
SELECT A.sku, A.num, A.ou, A.order, B.ou, B.order
FROM A
JOIN B ON A.sku = B.sku AND A.num = B.num
WHERE A.bs = '20230331' AND B.bs = '20230401'
```
这里使用了INNER JOIN将A表和B表连接起来,连接条件是sku和num相同。然后在WHERE子句中过滤A表的时间为20230331,B表的时间为20230401。最终SELECT语句中选择需要的字段即可。
相关问题
我有两张表A和B,用时间bs分区,通过A,B表相同的sku和num,以A表为基准,取A表bs=20230331时所有的sku的ou和order,和B表bs=20230401时和A表sku相同的ou和order
可以使用以下 SQL 语句实现:
```sql
SELECT a.sku, a.ou, a.order, b.ou, b.order
FROM A a
LEFT JOIN B b ON a.sku = b.sku AND a.num = b.num
WHERE a.bs = '20230331' AND b.bs = '20230401'
```
这里使用了左连接(LEFT JOIN),以保证即使在表B中没有与表A匹配的记录,也能将表A的记录返回。同时,通过在 WHERE 子句中设置条件,保证只有在表A和表B中都满足条件时才会返回结果。
我有两张表A和B,用时间bs分区,A,B表有相同的sku和num,以A表为基准,取A表bs=20230401时所有的sku的ou和order,和B表bs=20230401时,当A表sku,num相同时的ou和order
你可以使用以下 SQL 语句来实现你的需求:
```
SELECT a.sku, a.num, a.ou AS a_ou, a.order AS a_order, b.ou AS b_ou, b.order AS b_order
FROM A a
LEFT JOIN B b ON a.sku = b.sku AND a.num = b.num AND a.bs = '20230401' AND b.bs = '20230401'
WHERE a.bs = '20230401'
```
上面的 SQL 语句通过左连接(LEFT JOIN)将表 A 和表 B 进行关联,关联条件为 sku 和 num 相等,并且分别限定了 bs 等于 20230401。然后在 SELECT 子句中选择了需要的列,包括 sku,num,A 表的 ou 和 order,以及 B 表的 ou 和 order。最后在 WHERE 子句中限定了 A 表的 bs 等于 20230401。