WITH t1 AS (
select * from my_table_1 where age >30
), t2 AS (
select * from my_table_2 where sex = 'M'
)
select *
from t1 inner join t2 on t1.id = t2.t_id;
WITH AS 的 sql语法是啥意思?
WITH和AS是SQL语句中的关键字,用于创建临时命名的查询结果集,这些临时结果集可以在主查询中引用。
具体的语法如下:
WITH alias_name AS (
query
)
SELECT *
FROM alias_name
解释上述代码示例:
1.t1和t2是两个临时表的别名。它们分别表示两个子查询的结果集。
2.子查询t1选择了my_table_1表中年龄大于30的所有行。
3.子查询t2选择了my_table_2表中性别为’M’的所有行。
4.主查询从t1和t2这两个临时表中进行内连接操作,并以t1.id = t2.t_id作为连接条件,返回匹配条件的结果。
使用WITH AS语法可以将复杂查询分解成简化和可重用的部分,并提高查询可读性。此外,通过引用已定义的临时表可以避免在主查询中多次重复编写相同的子查询逻辑。