🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
表连接分为内连接、外连接、全连接。 >[warning]mysql不支持全连接。 [TOC] # 1. 内连接 ```sql 写法1: from A inner join B on A.列=B.列 inner join C on A.列/B.列=C.列; -- A inner join B与A join B功能一样,表示A表和B表的交集。 写法2:(也叫等值连接;如果把where条件去掉,叫笛卡尔积) from A,B where A.列=B.列; from A,B,C where A.列=B.列 and A.列/B.列=C.列; ``` 内连接注意事项: * 大多数时候,表连接都根据主外键关系,但是如果创建表的时候,没有添加外键约束,不影响表连接的使用。 * 内连接大多数时候都是`A.列=B.列`,但是不一定是`=`,可能是`!=`、或者`<`、或者`> `. <br/> # 2. 外连接 共有3种形式的语法。 (1)左外连接 ```sql -- 查询每个学生的考试信息(没有考试记录则用null替代) select s.studentName, s.phone, r.* from student s left join result r on s.studentNo=r.studentNo; ``` (2)右外连接 ```sql -- 查询每个学生的考试信息(没有考试记录则用null替代) select s.studentName, s.phone, r.* from result r right join student s on s.studentNo=r.studentNo; ``` (3)全连接(需要考虑mysql是否支持) ```sql -- 全连接 mysql不支持 select s.studentName, s.phone, r.* from result r full join student s on s.studentNo=r.studentNo; ``` <br/> # 3. 表连接的特殊情况 A表可以与A表连接。 ```sql from A,A where A.column1=B.column2; ```