MySQL是一種廣泛使用的關系型數據庫管理系統,它可以在多個表之間進行多表查詢。在進行多表查詢時,我們需要使用JOIN關鍵字來連接多個表,同時指定不同表之間的關聯條件。
SELECT 列名1, 列名2, ... FROM 表名1 JOIN 表名2 ON 表名1.列名 = 表名2.列名 WHERE 條件;
上面的代碼是一個基本的多表查詢語句示例。在這個語句中,我們使用SELECT語句來指定要查詢的列,使用FROM語句來指定第一個表,使用JOIN關鍵字來連接第二個表,并通過ON關鍵字指定它們之間的關聯條件。
下面是多表查詢語句的一些實例:
1. 查詢顧客和訂單表,返回包括顧客姓名和訂單編號的結果: SELECT customers.name, orders.order_num FROM customers JOIN orders ON customers.cust_id = orders.cust_id; 2. 查詢顧客和訂單表,返回所有顧客及其所有訂單編號的結果: SELECT customers.name, orders.order_num FROM customers LEFT JOIN orders ON customers.cust_id = orders.cust_id; 3. 查詢訂單和訂單明細表,返回所有訂單及其所有相關的訂單明細的結果: SELECT orders.order_num, orderitems.quantity, orderitems.item_price FROM orders JOIN orderitems ON orders.order_num = orderitems.order_num; 4. 查詢訂單和訂單明細表,返回所有訂單及其所有相關的訂單明細、產品名稱和產品描述的結果: SELECT orders.order_num, orderitems.quantity, orderitems.item_price, products.description FROM orders JOIN orderitems ON orders.order_num = orderitems.order_num JOIN products ON orderitems.product_id = products.product_id; 5. 查詢訂單、訂單明細和產品表,返回所有訂單及其所有相關的訂單明細、產品名稱和產品描述的結果,如果有任何一張表沒有匹配,則返回NULL值: SELECT orders.order_num, orderitems.quantity, orderitems.item_price, products.description FROM orders LEFT JOIN orderitems ON orders.order_num = orderitems.order_num LEFT JOIN products ON orderitems.product_id = products.product_id;