两个表中的SQL语句

时间:2008-11-11 13:14:38

标签: sql ms-access

我想知道是否有可能从一个表中选择某些列,从第二个表中选择另一个列,这与第一个表中的非导入列有关。我必须从访问中获取此数据,并且不知道这是否可以使用Access或SQL。

4 个答案:

答案 0 :(得分:6)

假设有以下表结构:

CREATE TABLE tbl_1 (
    pk_1 int,
    field_1 varchar(25),
    field_2 varchar(25)
);

CREATE TABLE tbl_2 (
    pk_2 int,
    fk_1 int,
    field_3 varchar(25),
    field_4 varchar(25)
);

您可以使用以下内容:

SELECT t1.field_1, t2.field_3
FROM tbl_1 t1
INNER JOIN tbl_2 t2 ON t1.pk_1 = t2.fk_1
WHERE t2.field_3 = "Some String"

关于Bill的帖子,有两种方法可以在SQL查询中创建JOIN:

  • 隐式 - 使用创建连接 查询的WHERE子句,在FROM子句中指定了多个表

  • 显式 - 使用创建连接     适当类型的JOIN子句     (内,左,右,全)

始终建议您使用显式JOIN语法,因为一旦查询变得更复杂,隐式连接就会出现问题。

例如,如果稍后向已使用FROM子句中引用的多个表的隐式连接的查询添加显式连接,则FROM子句中引用的第一个表对于显式连接表将不可见。 / p>

答案 1 :(得分:2)

您正在寻找的是JOIN:

http://en.wikipedia.org/wiki/Join_(SQL)

第一个表中需要引用数据集和外键的主键。

答案 2 :(得分:0)

我不是100%确定我理解你的问题。

以下是真的:

您的第一张桌子是从其他地方导入的。 您只导入一些列。 您希望构建一个引用您尚未导入的列的查询。

如果这是真的,那是不可能的。就相关的Access查询引擎而言,不存在非导入列。

为什么不直接导入它们呢?

答案 3 :(得分:0)

但主键可以提高查询效率