using

using等价于join操作中的on,然后匹配两张表的相同字段;
例如a和b根据id字段关联,那么以下等价
using(id) <-> on a.id=b.id
如以下2个实例等价:

1
2
3
select a.name,b.age from t_1 as a join t_2 as b on a.id=b.id
等价于
select a.name,b.age from t_1 as a join t_2 as b using(id)

还可以根据多值相等,如

1
2
3
select a.name,b.age from t_1 as a join t_2 as b on a.id=b.id and a.name=b.name
等价于
select a.name,b.age from t_1 as a join t_2 as b using(id,name)

with as

1
2
3
4
5
with as temp_name_a(
-- 这里就是查询回来一个临时表
select col_a,col_b,col_c from a inner join b on a.id=b.id
)
selec * from temp_name_a

Mysql语法