SQL表引用

时间:2012-05-20 22:35:45

标签: sql

首先,我对糟糕的头衔感到抱歉,但是5分钟后我无法想出更好的作品。

请假设以下内容:有人和银行帐户,我希望实现两个表来模拟它。一个人有一个ID(主键)和一个名字。银行帐户还具有ID(主键),所有者(外键)和值。 这是我的代码:

create table Person(
  ID integer primary key,
  name varchar(200) not null
);

create table Account(
  ID integer primary key,
  owner integer references Person(ID),
  value number not null
);

现在,有没有办法让一个人“知道”哪个帐户与select * from Account where owner = XY关联? 我问我的老师,但是没有得到与SQL相关的答案。在互联网上,我找不到任何建议,所以我在这里问。 请原谅我这个问题,但我已经习惯了面向对象的语言,其中Person类包含一个Enumerable来存储所有帐户。

1 个答案:

答案 0 :(得分:3)

这就是关系数据库的工作方式,它们有关系的表格。

因为它是关系型的,您可以在一个查询中查询Person并获取与该人相关的所有Account。为此,您需要执行JOIN

代码示例

SELECT * FROM Person
JOIN Account ON (Person.ID = Account.owner)
WHERE Person.ID = XY;

如果您想要一个面向文档的数据库,您可以使用像MongoDB这样的东西,您可以将Account直接嵌入到Person文档中。