将两个表连接在一起的条件称为连接谓词(Join Predicate)或连接条件。内连接只返回两个表中与连接谓词匹配的行,不匹配的行不会被输出。
内连接的语法格式有两种,分别为:
SELECT <列名>,…
FROM 左表,右表
WHERE <左表>.<主键> <比较运算符> <右表>.<外键>
和
SELECT <列名>, …
FROM <左表> JOIN <右表>
ON <左表>.<主键> <比较运算符> <右表>.<外键>
当连接运算符为“=”时,被称为等值连接,使用其他运算符时,被称为非等值连接。INNER JOIN 关键字表示进行内连接,关键字左侧的表被称为左表,右侧的表被称为右表。ON 关键字后面是连接谓词。
等值连接是最常用的一种连接查询类型,在通常情况下,等值连接的谓词是一个表的主键等于另一个表的外键。正是通过数据库中定义的主外键关系,表与表才能有机地连接在一起。
例 1.13 查询每位顾客的联系方式及其订货日期。
顾客信息存放在 customer 表中,订单日期存放在 orders 表中,本查询需要涉及两个表。两个表之间的联系是通过 customer 表的主键 customer_num 和 orders 表的外键 customer_num实现的。
select customer.customer_num, cname, phone, order_num, order_ date
from customer join orders
on customer.customer_num=orders.customer_num;
查询结果为:
customer_num cname phone order_num order_date
101 张— 138-8789-8075
1001 05/20/2008
101 张— 138-8789-8075
1002 05/21/2008
104 杰克 415-743-3611
1003 05/22/2008
102 李凤 130-5822-1289 1004 06/07/2008
104 杰克 415-743-3611
1005 06/22/2008
内连接的连接谓词也可以在 WHERE 子句中指定。这种语法形式不使用 SQL-92 标准引入的 JOIN 关键字,因此被称为旧式内连接。与例 1.13 查询等价的旧式内连接为:
select customer.customer_num, cname, phone, order_num, order_ date
from customer ,orders
where customer.customer_num=orders.customer_num;
本文介绍了GBase 8a数据库中的内连接查询,包括内连接的两种语法格式,等值连接和非等值连接的概念,并通过一个实际例子展示了如何使用INNER JOIN和WHERE子句进行内连接查询,以查询顾客的联系方式和订货日期。
2729

被折叠的 条评论
为什么被折叠?



