请教:下述SQL语句属于哪种连接类型及查询类型?
你的SQL语句解析:连接类型与查询类别
一、连接类型:隐式内连接(INNER JOIN)
你写的这条SQL用的是隐式内连接的写法,这是SQL早期的关联语法——通过逗号分隔多张表,再在WHERE子句中指定表之间的关联条件(a.customer_id=b.customer_id)。它和现代SQL的显式内连接完全等价,等价写法如下:
SELECT b.*, a.cust_name FROM orders b INNER JOIN customer a ON a.customer_id=b.customer_id WHERE b.ord_date='2012-08-17';
内连接的作用是只返回两张表中满足关联条件的匹配行,也就是只有当customer表中存在与orders表customer_id一致的记录时,这条数据才会被筛选出来。
二、查询类别:带筛选条件的关联查询
这条查询属于关联查询+条件筛选查询:
- 关联查询:通过
customer_id将orders(订单表)和customer(客户表)关联,目的是同时获取订单数据和对应的客户名称; - 条件筛选:通过
WHERE子句中的b.ord_date='2012-08-17',只保留2012年8月17日的订单数据。
简单来说,这条SQL的作用就是:找出2012年8月17日所有订单的完整信息,以及对应下单客户的名称。
内容的提问来源于stack exchange,提问作者Jawad Ilyas
相关产品推荐
相关产品推荐

