经典SQL语句

有两个表A和B,均有key和value两个字段,如果B的key在A中也有,就把B的value替换为A中对应的value

1
2
update B b set b.value=(select max(a.value) from A a where b.key=a.key)
where exists(select 1 from A c where b.key=c.key)
1
2
UPDATE A a,(select a.`key`,b.`value` from A INNER JOIN B on a.`key`=b.`key`) b 
SET a.`value` = b.`value` WHERE a.`key` = b.`key`

查询表A中存在ID重复三次以上的记录

1
Select * From A Where id in(select ID from A group by id having count(id)>3)

用一条SQL语句显示所有可能的比赛组合

一个叫team的表,里面只有一个字段name,一共有4 条纪录,分别是a、b、c、d,对应四个球队,现在四个球队进行比赛,用一条SQL语句显示所有可能的比赛组合。

1
select * from team a,team b where a.name>b.name;

用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。

1
select (case when a>b then a else b end ),(case when b>c then b esle c end)  from 表名
1
select if(a>b,a,b),if(b>c,b,c) from 表名