您的位置:首頁技術文章
文章詳情頁

詳解MySQL的內連接和外連接

瀏覽:134日期:2023-05-08 10:17:47

MySQL 中的內連接、左外連接和右外連接是用于連接兩個或多個表的不同方式,它們之間的區別如下:

內連接(Inner Join)

內連接也稱為等值連接,只返回兩個表中鍵值匹配的行,即只有在兩個表中都有匹配的數據時才會返回。內連接的語法如下:

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;

左外連接(Left Join)

左連接返回左表中所有記錄和右表中匹配的記錄,如果右表中沒有匹配的記錄,則返回 NULL 值。左連接的語法如下:

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;

右外連接(Right Join)

右連接返回右表中所有記錄和左表中匹配的記錄,如果左表中沒有匹配的記錄,則返回 NULL 值。右連接的語法如下:

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;

以上三種連接方式都是基于相同的基礎,只是返回的結果不同。需要根據實際需求選擇不同的連接方式來處理數據。

案例:

假設有兩個表A和B:

表A:

idname1Alice2Bob3Carol

表B:

idscore190280370

內連接查詢A和B表中相同id的數據:

sqlCopy code
SELECT A.id, A.name, B.score 
FROM A 
INNER JOIN B 
ON A.id = B.id;

結果:

idnamescore1Alice902Bob80

左連接查詢A和B表中所有的數據,如果B表中沒有與A表相同的id,則B表的score為NULL

sqlCopy code
SELECT A.id, A.name, B.score 
FROM A 
LEFT JOIN B 
ON A.id = B.id;

結果:

idnamescore1Alice902Bob803CarolNULL

右連接和左連接相似,只是將A表和B表調換位置,查詢B表和A表的數據。

到此這篇關于詳解MySQL的內連接和外連接的文章就介紹到這了,更多相關MySQL內連接外連接內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: MySQL
相關文章:
国产综合久久一区二区三区