在SQL中,聯接查詢(JOIN)用于將兩個或多個表中的行組合起來,基于這些表之間的相關列。以下是幾種常見的聯接查詢類型及其基本語法:
內連接返回兩個表中匹配的行。
SELECT a.column1, b.column2
FROM table1 a
INNER JOIN table2 b ON a.common_column = b.common_column;
左連接返回左表中的所有行,以及右表中匹配的行。如果右表中沒有匹配的行,則結果集中右表的列將顯示為NULL。
SELECT a.column1, b.column2
FROM table1 a
LEFT JOIN table2 b ON a.common_column = b.common_column;
右連接返回右表中的所有行,以及左表中匹配的行。如果左表中沒有匹配的行,則結果集中左表的列將顯示為NULL。
SELECT a.column1, b.column2
FROM table1 a
RIGHT JOIN table2 b ON a.common_column = b.common_column;
全外連接返回左表和右表中的所有行。如果某一行在另一個表中沒有匹配的行,則結果集中該表的列將顯示為NULL。
SELECT a.column1, b.column2
FROM table1 a
FULL OUTER JOIN table2 b ON a.common_column = b.common_column;
交叉連接返回兩個表中所有可能的行組合。
SELECT a.column1, b.column2
FROM table1 a
CROSS JOIN table2 b;
假設有兩個表 employees
和 departments
,它們的結構如下:
employees
表:
employee_id
(主鍵)name
department_id
departments
表:
department_id
(主鍵)department_name
要查詢每個員工及其所屬部門的名稱,可以使用以下SQL語句:
SELECT e.name AS EmployeeName, d.department_name AS DepartmentName
FROM employees e
INNER JOIN departments d ON e.department_id = d.department_id;
這個查詢將返回所有員工及其所屬部門的名稱,只包括那些在兩個表中都有匹配的行。
希望這些示例能幫助你理解SQL聯接查詢的基本用法。如果你有更多問題,請隨時提問!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。