上QQ阅读APP看书,第一时间看更新
3.5.2 UNION语句
使用UNION语句可以把从两张表中查询出来的数据合在一个结果集下,示例如下:
SELECT * FROM student WHERE no = 1 UNION SELECT * FROM student_bak where no = 2;
上面的语法比较简单,把两个SQL语句用“UNION”关键字连接起来就可以了。
查询结果如下:
osdba=# SELECT * FROM student WHERE no = 1 UNION SELECT * FROM student_bak where no = 2; no | student_name | age | class_no ----+--------------+-----+---------- 1 | 张三 | 14 | 1 2 | 吴二 | 15 | 1 (2 rows)
需要特别注意的是,UNION语句可以把结果集中相同的两条记录合并成一条:
osdba=# SELECT * FROM student WHERE no = 1 UNION SELECT * FROM student_bak where no = 1; no | student_name | age | class_no ----+--------------+-----+---------- 1 | 张三 | 14 | 1 (1 row)
如果不想合并结果集中的相同记录,可以使用UNION ALL语句,示例如下:
osdba=# SELECT * FROM student WHERE no = 1 UNION ALL SELECT * FROM student_bak where no = 1; no | student_name | age | class_no ----+--------------+-----+---------- 1 | 张三 | 14 | 1 1 | 张三 | 14 | 1 (2 rows)