跨数据库连接
当所需数据表在另一个数据库时,需要在不在当前数据库的数据表名称前加上其所在数据库的名称,实现跨数据库表的连接,eg:
这里的是在sql_store数据库写的语句,要与数据库sql_inventory数据库连接起来
SELECT *
FROM order_items oi
JOIN sql_inventory.products p
ON oi.product_id=p.product_id
自连接
将表和自己来连接和将表与其他表连接大致相同,唯一不同的是需要使用不同的别名,并且需要给每列都加一个别名。eg:
SELECT
e.employee_id,
e.first_name,
m.first_name AS manager
FROM employees e
JOIN employees m
ON e.reports_to=m.employee_id
多表连接
表连接的时候尽量不要超过三张表,表连接多了会影响查询速度
多表连接和两个表连接的方式是一致的,找到表之间的关系,顺序连接即可。eg:
SELECT
o.order_id,
o.order_date,
c.first_name,
c.last_name,
os.name AS status
FROM orders o
JOIN customers c
ON o.customer_id=c.customer_id
JOIN order_statuses os
ON o.status=os.order_status_id
练习