假设你的两列叫做f1和f2,两个表名分别是a和b,那么第一个任务的语句是:
创新互联建站成立与2013年,先为周口等服务建站,周口等地企业,进行企业商务咨询服务。为周口企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
DELETE FROM a WHERE f1 NOT IN (SELECT f1 FROM b)
完成第二个任务的语句是:
DELETE FROM b WHERE f1 IN (SELECT f1 FROM a)
如何比较2个mysql数据库数据
sql语句:因为MySQL 没有full outer join,所以用left join union all right join来实现
select a.table_schema,
a.table_name,
a.column_name,
b.table_schema,
b.table_name,
b.column_name
from information_schema.columns a
left join information_schema.columns b on a.table_name = b.table_name and a.column_name =
b.column_name and b.table_schema = 'DBNAMe1'
where a.table_schema = 'DBNAME2' and
(b.table_name is null or
b.column_name is null)
union all
select a.table_schema,
a.table_name,
a.column_name,
b.table_schema,
b.table_name,
b.column_name
from information_schema.columns a
left join information_schema.columns b on a.table_name = b.table_name and a.column_name =
b.column_name and b.table_schema = 'DBNAME2'
where a.table_schema = 'DBNAME1' and
(b.table_name is null or
b.column_name is NULL) ;
查询2011的数据:select * from 表 where year(date)='2011';
查找月份为12的数据:select * from 表 where month(date)='12';
查找天数为本年第二天的数据:select * from 表 where dayofyear(date)='2';
我解释一下:
select * from 表 where 这是必须的
year,month,dayofyear是mysql的函数,分别是取得年,月,和当前时间在本年是第几天的3个函数
date就是你保存时间的字段
等号后面的当然条件啦。
如果日期列是日期型,用下面的sql语句
select * from 表名 where 列名=date_sub(curdate(), interval 30 day);
如果日期列是字符串型,用下面的sql语句
select * from 表名 where 列名=date_format(date_sub(curdate(), interval 30 day), '%Y-%m-%d');
注意curdate()是获得当前日期函数
date_sub()是减少日期的函数
date_format()是日期型按格式转换成字符串型的函数
通过 INFORMATION_SCHEMA TABLES , INFORMATION_SCHEMA COLUMNS 你可以得到所有表的字段名,然后可以进行分析比较。
可以用语句快速过滤select * from 人员表 where 姓名 not in (select 姓名 from 出勤表)