mysql - 如何比较 2 个表并保存到另一个表中
问题描述
这是我的导入表:
我的问题是,我输入“日期”作为输入,应该比较两个表具有相同类型的数据。它发送的消息与表中的数据相同,否则如果不相同,则应将其保存到“集合”表中。
我的代码是:
$query = $this->db->query("SELECT * FROM `collection` Left outer JOIN import on import.cdate != collection.collection_date WHERE collection_date="2019-07-11"")->result_array();
解决方案
你可以试试这个查询:
SELECT
a.dt,
(
CASE
WHEN c.cdate IS NULL
THEN 'save this'
ELSE 'the data is same'
END
) AS reslt
FROM
(SELECT
'2019-08-07' dt) a
LEFT JOIN `collection` b
ON a.dt = b.collection_date
LEFT JOIN `import` AS c
ON b.collection_date = c.cdate
AND b.pcode = c.code
AND b.pname = c.name
AND b.rcode = c.rcode1
AND b.rmaster = c.rmaster1
AND b.collection_amt = c.camt
AND b.loan_no = c.lno
AND b.receive_amt = c.ramt
AND b.loan_amt = c.lamt
AND b.route_no = c.rno;
在“SELECT '2019-08-07' dt”中,您需要将输入传递给它,在这里我匹配所有行以获得完美匹配。如果您只需要日期匹配,您可以避免所有其他行匹配条件,并且您可以只保留“ b.collection_date = c.cdate ”。
重要提示:索引列使查询更快。
推荐阅读
- javascript - 在 React 函数中捕获和更改 API 值
- terraform - 如何自动将资源导入 Terraform 状态?
- kubernetes - 从 helm release 获取所有资源的名称
- quartz.net - 错过执行后 Quartz.NET 触发器未触发
- javascript - 查找与高 num 值关联的标签Javascript 逻辑函数
- javascript - Mouseover/mouseout 事件只能在本地正常工作,而不是在推送到 gitHub 页面或部署在 Netlify 上时
- javascript - 如何将 2 个数组加入到对象数组中
- pentaho - pentaho 9.1 CE 可以部署在 docker 上吗?
- mysql - MySQL - 使用其他查询条件,如果另一个查询条件没有返回结果
- sql-server - SQLAlchemy-1.4.21 SQL Server pyodbc 连接错误