Mysql内连接_INNER JOIN
生活随笔
收集整理的這篇文章主要介紹了
Mysql内连接_INNER JOIN
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、連接同一數據庫的兩張表
SELECT *
FROM orders
-- 內連接時INNER可以省略
INNER JOIN customers ON??orders.customer_id=customers.customer_id
這樣會將orders表和customers表內容全部顯示出來,左邊是orders表
SELECT orders.customer_id,order_id,first_name,last_name,phone? ? # 有兩列customer_id, 需指明選中哪一個 FROM orders -- 內連接時INNER可以省略 INNER JOIN customers ON??orders.customer_id=customers.customer_id表的名字后面緊跟字符,該字符可指替表——使用該方法后原來的表名將不再適用
SELECT o.customer_id,order_id,first_name,last_name,phone FROM orders o # o代替orders,保存美觀 -- 內連接時INNER可以省略 INNER JOIN customers c ON o.customer_id=c.customer_id二、跨數據庫連接兩張表
將sql_store數據庫中的order_items表和sql_inventory數據庫中的products表連接起來,都包含product_id USE sql_store; SELECT * FROM sql_inventory.products p? ? # 先展示此表,只需要給不在當前數據庫中的表加前綴 JOIN order_items oiON p.product_id=oi.product_id USE sql_store; SELECT * FROM order_items oi? ? #?先展示此表 JOIN sql_inventory.products pON p.product_id=oi.product_id USE sql_inventory; SELECT * FROM sql_store.order_items oi? ? # 先展示此表 JOIN products pON p.product_id=oi.product_id三、自連接-自己連接自己,例如員工和管理人員在同一表中,查找他們的關系
USE sql_hr; SELECTe.employee_id,e.first_name AS employee,m.first_name AS manager FROM employees e JOIN employees m ON e.reports_to=m.employee_id 四、連接同一數據庫的多張表 USE sql_store; SELECT order_id,order_date,first_name,last_name,os.name AS status FROM orders o JOIN customers c ON c.customer_id=o.customer_id JOIN order_statuses os ON os.order_status_id=o.status USE sql_invoicing; SELECTc.name,pm.name AS method,p.date,p.amount FROM clients c JOIN payments pON p.client_id=c.client_id JOIN payment_methods pmON pm.payment_method_id=p.payment_method五、復合連接-連接有多個主鍵的表
USE sql_store; SELECT * FROM order_items oi JOIN order_item_notes oinON oi.order_id=oin.order_IdAND oi.product_id=oin.product_id六、隱式語法內連接-不建議使用-強烈建議使用顯示語法JOIN
USE sql_store; SELECT * FROM customers c,orders o WHERE c.customer_id=o.customer_id?
總結
以上是生活随笔為你收集整理的Mysql内连接_INNER JOIN的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mysql之WHERE子句
- 下一篇: Mysql之增加数据_INSERT IN