繁体   English   中英

来自两个表的SQL语句

[英]SQL statement from two tables

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

假设表结构如下:

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子句(INNER,LEFT,RIGHT,FULL)创建联接

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

例如,如果以后向显式联接添加一个已经使用隐式联接的查询,该隐式联接具有FROM子句中引用的多个表,则FROM子句中引用的第一个表对显式联接表不可见。

您正在寻找的是JOIN:

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

您需要主键用于引用的数据集,并且在第一张表中需要外键。

我不确定100%知道您的问题。

是否满足以下条件:

您的第一个表是从其他地方导入的。 您仅导入一些列。 您要构建一个查询,该查询引用您尚未导入的列。

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

为什么不同时导入它们呢?

但是主键使查询更高效

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM