订单表
顾客表
如何选取orders表中的订单,但我们不展示顾客id
要展示顾客的全名
SELECT *
FROM orders
JOIN customers ON orders.customer_id = customers.customer_id
#合并orders表里的列和customers表里的列
#JOIN 或inner join inner可以不写
#想把订单表和顾客表连接,我们基于什么来连接这些表?
#依据id
#每次连接订单表和顾客表时,要确保订单表里的顾客id列和顾客表里的顾客id列
结果表中先是orders表中的列,因为我们先写的order
from orders
当多张表有一样的列,需要添加表名的前缀
SELECT order_id, first_name, last_name, orders.customer_id
FROM orders
JOIN customers ON orders.customer_id = customers.customer_id
/*
直接select 顾客id会提示Column 'customer_id' in field list is ambiguous
因为两个表中都有顾客id,所以mysql不知道我们想从哪张表中选取该列
从order表或customer表选取都可以,因为orders.customer_id = customers.customer_id它俩都一样
*/
紧跟每个表的后面可以使用别名,简化代码
SELECT order_id, first_name, last_name, o.customer_id
FROM orders o#每当有orders就用o代替
JOIN customers c ON o.customer_id = c.customer_id