到目前為止顯示的所有查詢,一次只從一個(gè)表中選擇。
SQL 的最有利的特征之一是能夠組合來(lái)自兩個(gè)或多個(gè)表的數(shù)據(jù)。
在下面的兩個(gè)表中,customers 表存儲(chǔ)有關(guān)客戶的信息,orders 表存儲(chǔ)有關(guān)訂單及其相應(yīng)金額的信息。
customers 表:
orders 表:
在SQL中,“表連接” 表示組合來(lái)自兩個(gè)或多個(gè)表的數(shù)據(jù)。表連接創(chuàng)建一個(gè)臨時(shí)表,顯示連接表中的數(shù)據(jù)。
“orders” 表不是將客戶名稱存儲(chǔ)在兩個(gè)表中,而是包含對(duì) “customers” 表中顯示的客戶ID的引用。這種方法更有效,而不是在兩個(gè)表中存儲(chǔ)相同的文本值。
為了能夠從兩個(gè)表中選擇相應(yīng)的數(shù)據(jù),我們需要在這個(gè)條件下連接它們。
你將在下一小節(jié)中學(xué)習(xí)更多有關(guān) “表連接” 的知識(shí)。
id FROM students id ;
要連接這兩個(gè)表,請(qǐng)?jiān)?FROM 子句中將它們指定為逗號(hào)分隔列表。
SQL 語(yǔ)句如下所示:
SELECT customers.ID, customers.Name, orders.Name, orders.Amount FROM customers, orders WHERE customers.ID=orders.Customer_ID ORDER BY customers.ID;
每個(gè)表包含 “ID ”和 “Name” 列,因此為了選擇正確的 ID 和 Name,將使用完全限定名稱。
請(qǐng)注意,WHERE 子句 “連接” 表,條件是來(lái)自 customers 表的 ID 應(yīng)等于 orders 表的 customer_ID。
上面 SQL 語(yǔ)句執(zhí)行輸出結(jié)果如下:
返回的數(shù)據(jù)顯示客戶訂單及其相應(yīng)金額。
在 FROM 中通過(guò)逗號(hào)分隔來(lái)指定多個(gè)表名。
SELECT customers.name, items.names FROM , items items.seller_id=customers.id;