表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;