1. 程式人生 > >MySQL內連接和外連接

MySQL內連接和外連接

nbsp rom sql 外鍵 n) 獲取 數據 select 除了

  • INNER JOIN(內連接,或等值連接):獲取兩個表中字段匹配關系的記錄。
  • LEFT JOIN(左連接):獲取左表所有記錄,即使右表沒有對應匹配的記錄。
  • RIGHT JOIN(右連接): 與 LEFT JOIN 相反,用於獲取右表所有記錄,即使左表沒有對應匹配的記錄。

MySQL內連接(inner join on)

MySQL的內連接使用inner join on,它的效果跟使用where是一樣的,如果聯結的是兩個表,那麽需要左右的條件或者說字段是需要完全匹配的。

來看個例子:有兩張表customers客戶表和orders訂單表,外鍵是cust_id,我們需要知道哪些客戶有訂單

select customers.cust_id,orders.order_num from customers , orders where customers.cust_id = orders.cust_id;

如果我們使用內連接的話就可以這樣寫:

select customers.cust_id,orders.order_num from customers inner join orders on customers.cust_id = orders.cust_id;

但是如果我除了這些有有客戶的訂單,我還想拿到所有的訂單信息,那麽怎麽辦呢?

MySQL外連接(left,right)

select customers.cust_id,orders.order_num from customers right outer join orders on customers.cust_id = orders.cust_id;

外連接包含左右連接,

左連接的結果是除了匹配條件的數據還包含左邊表中的所有數據

右連接的結果是除了匹配條件的數據還包含右邊表中的所有數據

MySQL內連接和外連接