然后在T1表加触发器,判断写进的值,然后去修改T2表,你实际需要的记录,都在T2里面。
mysql> delimiter |
mysql> CREATE TRIGGER MAX_INSERT BEFORE INSERT ON t2
-> FOR EACH ROW BEGIN
-> IF EXISTS(SELECT 1 FROM t3 WHERE b<=new.b) THEN
-> DELETE FROM t3 WHERE a=new.A AND b<=new.b;
-> INSERT INTO t3 VALUES (NEW.a,new.b);
-> END IF ;
-> END;
-> |
Query OK, 0 rows affected (0.16 sec)
insert into t2 values(1,12),(2,20),(2,34),(3,10);-----------sql1
select a,max(b) from t2 group by a; -----------sql2
能不能将这2条语句合二为一?
执行后的结果:在t2中保留上面执行的sql2后的结果……
[/Quote]
insert into t2 values(1,12),(2,20),(2,34),(3,10);-----------sql1
select a,max(b) from t2 group by a; -----------sql2
能不能将这2条语句合二为一?
执行后的结果:在t2中保留上面执行的sql2后的结果?
就是说:向t2中插入数据,然后将数值较小的都……
[/Quote]
你是想把表里小的记录都删除,是这样意思吧。
1:create table t1 like t2;
2: insert into t1 select a,max(b) as b from t2 group by a;
3: drop table t2;
4: rename table t1 to t2;
insert into t2 values(1,12),(2,20),(2,34),(3,10);-----------sql1
select a,max(b) from t2 group by a; -----------sql2
能不能将这2条语句合二为一?
执行后的结果:在t2中保留上面执行的sql2后的结果?
就是说:向t2中插入数据,然后将数值较小的都删除,只保持某一记录t2.a中t2.b最大的记录。