**表boy **,数据如下:

表girl,数据如下:

一、内连接 inner join :

问题:用sql查出boy和girl表中家庭完整的家庭ID和用户名?

select boy.hid,boy.name,girl.hid,girl.name from boy inner join girl on boy.hid=girl.hid;

二、左连接 left join 或者左外连接 left outer join: 问题:用sql查出boy表所有用户对应的另一半? select boy.hid,boy.name,girl.hid,girl.name from boy left join girl on boy.hid=girl.hid;

三、右连接right join或者 右外连接 right outer join : 问题:用sql查出girl表所有用户对应的另一半?

select boy.hid,boy.name,girl.hid,girl.name from boy right join girl on boy.hid=girl.hid;

四、完整的外连接 full join或者full outer join:

完整外连接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。 注意:mysql不支持,oracle支持。

select boy.hid,boy.name,girl.hid,girl.name from boy full join girl on boy.hid=girl.hid;