Sql 通过外键连接的两个表

Sql 通过外键连接的两个表,sql,sql-server,foreign-keys,foreign-key-relationship,Sql,Sql Server,Foreign Keys,Foreign Key Relationship,我需要连接SQL Server中的两个表:表A有一个主键名为IDTableA(integer字段),而表B有一个主键IDTableB(integer字段) 表A包含一个外键IDTableB,因此我想连接两个表,该字段的类型为integer,其值为0 我的问题是,由于表B中没有ID为0的记录,所以不要显示表A中外键中存储了0的记录 两个表之间的关系是:表a中的一条记录可能属于表B中的一条记录,也可能不属于表B中的任何记录。因此,表a中外键的默认值为0 我尝试用内部联接和左侧外部联接连接表,但不起作

我需要连接SQL Server中的两个表:
表A
有一个主键名为
IDTableA
integer
字段),而
表B
有一个主键
IDTableB
integer
字段)

表A
包含一个外键
IDTableB
,因此我想连接两个表,该字段的类型为
integer
,其值为0

我的问题是,由于
表B
中没有ID为0的记录,所以不要显示表A中外键中存储了0的记录

两个表之间的关系是:
表a
中的一条记录可能属于表B中的一条记录,也可能不属于表B中的任何记录。因此,表a中外键的默认值为0

我尝试用
内部联接
左侧外部联接
连接表,但不起作用,没有留下任何记录显示。我能做什么

谢谢

我的SQL语句:

Select TableA.* 
From TableA 
inner join TableB on TableA.IdTableB = TableB.IdTableB
解决方案:

    Select TableA.* 
    From TableA 
    LEFT JOIN TableB on TableA.IdTableB = TableB.IdTableB
更多信息:

尝试仅使用左连接

像这样的

Select *
from table_1 tbl1
left join table_2 tbl2 on tbl2.id = tbl1.id

内部联接是应用程序中最常用的联接操作,可以视为默认联接类型。内部联接通过基于联接谓词组合两个表(a和B)的列值来创建新的结果表。查询将A的每一行与B的每一行进行比较,以找到满足连接谓词的所有行对。当满足连接谓词时,A和B的每对匹配行的列值将合并到结果行中

FROM Table A <renametablehere>
Inner Join Table B <renametablehere>
On <renamedtablename for A>.ID = <renamed table name for b>B.ID
表A中的

内部联接表B
On.ID=B.ID

您能发布您的查询吗?左连接是正确的。你可能换了阵营。您可以发布您的查询吗?如果TableA.IDTableB的值始终为0,您希望它如何连接到表B(其中没有ID为0的记录)?已发布查询。Mark Bannister,默认值或IDTableB为0,但其值可以是任何整数值。如果您发布代码、XML或数据示例,请在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码示例”按钮(
{}
),以很好地格式化和语法突出显示它!Owkei,您是否尝试过这样的“选择TableA.*从TableA左连接TableB on TableA.IdTableB=TableB.IdTableB”,很抱歉,我尝试了
左外部连接
,但没有
左连接
。这就是解决办法。现在可以正常工作了。@MGG_Soft它是一样的。关键字OUTER可以省略。以下是信息: