菜鳥學mysql之左右連接、內連接
1,創建表:boy並模擬插入幾行數據
Java代碼
create table boy(
name varchar(10),
flower varchar(10)
);
Java代碼
insert into boy
values
("林書豪","玫瑰"),
("劉翔","桃花"),
("周傑倫","茉莉花"),
("犀利哥","荷花"),
("劉德華","狗尾巴花");
2,創建表:girl並模擬插入幾行數據
Java代碼
create table girl(
name varchar(10),
flower varchar(10)
);
Java代碼
insert into girl
values
("艾薇兒","玫瑰"),
("居裡夫人","桃花"),
("芙蓉姐","茉莉花"),
("鳳姐","茉莉花"),
("林志玲","荷花");
3,測試:
小小說明:左連接中,表中數據有多少行?既不是boy表的行數,也不是girl表的行數,也不是boy表的行數乘以girl表的行數,是由on條件決定。但一定大於等於左表的行數,如右邊沒有匹配的用null補齊,比如 劉德華那一行中,girl表中無法與他匹配便用null補上。
左右連接的區別:
A站在B的左邊 = B站在A的右邊。
A left join B = B right join A .
內連接:
查詢左右表中都有的數據,不要左/右中null的那一部分。
內連接是左右連接的交集。