inner join(join)关键字
用于将多个表联合显示出来
除了之前的customers表来表示客户,同样有一张order表示客户订单,如下:
- 以某一列为值联合
select *
from orders
inner join customers //为内部联合,inner关键字可省略
on orders.customer_id = customers.customer_id //只联合customer_id相等的数据
- 联合数据库中的其它表
select order_id, o.customer_id,first_name,last_name //对于两个都有的customer_id要指明主表
from orders o //令order简称为o
join customers c//令customers简称为c
on o.customer_id = c.customer_id
- 联合其它数据库中的表
select *
from order_items oi
join sql_inventory.products p //需要为不是当前数据库的表加上前缀,前缀为其他数据库别名
on oi.product_id = p.product_id
- 联合自身
这种情况是为了一张表内关联数据的对比来显示,例如以下一张员工表
员工要向经理汇报(reports_to),而经理本身来说也是一名员工有自己的员工id,将每个员工向经理汇报的数据显示出来
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