如何在两个数据库表之间进行简单的连接
连接是一个非常强大的工具。还记得数据库介绍模块中的关系代数吗?
连接就是应用关系代数。
假设你有两个表,people 和cars 。
CREATE TABLE people (
age INT NOT NULL,
name CHAR(20) NOT NULL PRIMARY KEY
);
CREATE TABLE cars (
brand CHAR(20) NOT NULL,
model CHAR(20) NOT NULL,
owner CHAR(20) NOT NULL PRIMARY KEY
);
我们添加一些数据。
INSERT INTO people VALUES (37, 'Flavio');
INSERT INTO people VALUES (8, 'Roger');
INSERT INTO cars VALUES ('Ford', 'Fiesta', 'Flavio');
INSERT INTO cars VALUES ('Ford', 'Mustang', 'Roger');
现在说我们想把这两个表关联起来,因为警察拦下了罗杰的车,看起来很年轻,想从他们的数据库中知道他的年龄。
罗杰是我的狗,但是我们假设狗可以开车。
我们可以用这个语法创建一个连接。
SELECT age FROM people JOIN cars ON people.name = cars.owner WHERE cars.model='Mustang';
我们会得到这个结果。
age
-----
8
发生了什么?我们在两个特定的列上连接两个表的汽车:people 表的name ,和cars 表的owner 。
连接是一个可以越来越复杂的话题,因为有许多不同的连接,你可以用它来对多个表做更复杂的事情,但这里是最基本的例子。