编写一条sql 其中mobile_tb_tra_ctrip_rrcords为数据表 mobile_tb_tra_apply为出差表 mobile_tb_tra_reconciliation为对账表 数据表中的apply_id = 出差表的id 对账表中的pay包含数据表中的batch_no 条件是数据表中的order_date大于2021-12-31 并且小于2022-08-01 出差表中的statu为32 对账表中的dzsj大于2022-07-31并且对账表中的is_kp=1 mobile_tb_tra_ctrip_rrcords 表中的 batch_no 字段与 mobile_tb_tra_reconciliation 表中的 pay 字段是包含关系 类似于pay字段值为1,2,3 batch_no为1。
时间: 2023-08-10 13:04:55 浏览: 97
以下是符合要求的 SQL 语句:
```
SELECT r.pay, a.apply_id, c.batch_no
FROM mobile_tb_tra_apply a
JOIN mobile_tb_tra_ctrip_rrcords c ON a.apply_id = c.apply_id
JOIN mobile_tb_tra_reconciliation r ON r.pay LIKE CONCAT('%', c.batch_no, '%')
WHERE a.order_date > '2021-12-31' AND a.order_date < '2022-08-01'
AND a.statu = 32
AND r.dzsj > '2022-07-31'
AND r.is_kp = 1;
```
这条 SQL 语句中,使用了多个表之间的 JOIN 操作,将 mobile_tb_tra_apply、mobile_tb_tra_ctrip_rrcords 和 mobile_tb_tra_reconciliation 这三个表连接在一起,以获取符合条件的数据。
具体来说,使用了 INNER JOIN 连接 mobile_tb_tra_apply 表和 mobile_tb_tra_ctrip_rrcords 表,以获取两个表中 apply_id 相同的记录;再使用 INNER JOIN 连接 mobile_tb_tra_ctrip_rrcords 表和 mobile_tb_tra_reconciliation 表,以获取两个表中 pay 包含 batch_no 的记录。
最后,在 WHERE 条件中加入了 order_date、statu、dzsj 和 is_kp 的限制条件,以获取符合条件的数据。
阅读全文