表1:info
mysql> select * from info; +----+---------+-------+-------+------+ | id | name | score | hobby | addr | +----+---------+-------+-------+------+ | 1 | zhansan | 66.00 | 1 | nj | | 2 | lisi | 68.00 | 2 | nj | | 3 | wangwu | 74.00 | 3 | nj | | 4 | zhaoliu | 54.00 | 4 | NULL | | 5 | xiaoqi | 99.00 | 2 | nj | | 10 | T1 | 58.00 | 2 | | | 11 | owooo | 55.00 | 1 | | | 12 | owo | 55.00 | 1 | | | 13 | yowooo | 58.00 | 1 | | | 14 | yowo | 65.00 | 1 | | +----+---------+-------+-------+------+表2:num
mysql> select * from num; +------+ | id | +------+ | 1 | | 2 | | 4 | | 8 | +------+表3:Hob
mysql> select * from Hob; +----+-----------+ | id | hob_name | +----+-----------+ | 1 | 吃饭 | | 2 | 睡觉 | | 3 | 打豆豆 | +----+-----------+相同条件连接:
mysql> select info.id,info.name from info inner join num on info.id=num.id; +----+---------+ | id | name | +----+---------+ | 1 | zhansan | | 2 | lisi | | 4 | zhaoliu | +----+---------+内连接:
mysql> select info.id,info.name,Hob.hob_name from info inner join Hob on info.hobby=Hob.id; +----+---------+-----------+ | id | name | hob_name | +----+---------+-----------+ | 1 | zhansan | 吃饭 | | 2 | lisi | 睡觉 | | 3 | wangwu | 打豆豆 | | 5 | xiaoqi | 睡觉 | | 10 | T1 | 睡觉 | | 11 | owooo | 吃饭 | | 12 | owo | 吃饭 | | 13 | yowooo | 吃饭 | | 14 | yowo | 吃饭 | +----+---------+-----------+附加: 写在前面的是主表,后面的是从表。 inner join左边的是左表,右边的是右表。
语法结构: select 字段1,字段2… from 表1 left join 表2 on 表1.字段1=表2.字段1;
mysql> select info.id,info.name,Hob.hob_name from info left join Hob on info.hobby=Hob.id; +----+---------+-----------+ | id | name | hob_name | +----+---------+-----------+ | 1 | zhansan | 吃饭 | | 11 | owooo | 吃饭 | | 12 | owo | 吃饭 | | 13 | yowooo | 吃饭 | | 14 | yowo | 吃饭 | | 2 | lisi | 睡觉 | | 5 | xiaoqi | 睡觉 | | 10 | T1 | 睡觉 | | 3 | wangwu | 打豆豆 | | 4 | zhaoliu | NULL | +----+---------+-----------+附加: 左连接就是以左表为主表,都显示出来,没有匹配到的都有null显示出来,右表没匹配到的都不显示。
语法结构: select 字段1,字段2… from 表1 right join 表2 on 表1.字段1=表2.字段1;
mysql> select info.id,info.name,Hob.hob_name from info right join Hob on info.hobby=Hob.id; +------+---------+-----------+ | id | name | hob_name | +------+---------+-----------+ | 1 | zhansan | 吃饭 | | 2 | lisi | 睡觉 | | 3 | wangwu | 打豆豆 | | 5 | xiaoqi | 睡觉 | | 10 | T1 | 睡觉 | | 11 | owooo | 吃饭 | | 12 | owo | 吃饭 | | 13 | yowooo | 吃饭 | | 14 | yowo | 吃饭 | +------+---------+-----------+附加: 右连接就是以右表为主表,都显示出来,没有匹配到的都有null显示出来,左表没匹配到的都不显示。