1 | select * from 表1,表2; |
结果为 表1
与 表2
的 笛卡儿积 (表1
和表2
的所有组合)
字段表示
访问表中的字段: 表1.字段
当进行多表查询时,可以使用字段名
而不是完整的表.字段
形式来表示字段。这样做的前提是查询中涉及的表中没有相同名称的字段,否则会导致歧义而报错。
为了避免字段名冲突,最好使用完整的 表.字段
形式
内连接 INNER JOIN
查询范围:两表的交集
隐式内连接:
1 | select 字段列表 from 表1,表2 where; |
显式内连接:
1 | -- inner 可省略 |
外连接 OUTER JOIN
以一个表为主,另一个表的数据为附加上去的(可以为Null)
左外连接 LEFT OOUTER JOIN
以左表为主,右表为附加数据
1 | -- outer 可省略 |
右外连接 RIGHT OUTER JOIN (使用较少)
左表为附加数据,以右表为主
因右外连接可替换为左外连接,故使用较少
1 | -- outer 可省略 |
子查询/嵌套查询
N/A NULL 的转换
一个查询的结果是N/A,但是再经过再嵌套一层 SELECT (SELECT N/A的结果)
,结果就变成了 NULL
效果相当于 SELECT IFNULL((SELECT 语句),NULL)
标量子查询:子查询返回的结果为单个值
原数值的位置替换为查询语句
1 | select * from tb_emp where id = (select id from tb_dept where name = '教研部'); |