Sql 通过外键连接的两个表
我需要连接SQL Server中的两个表: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 我尝试用内部联接和左侧外部联接连接表,但不起作
表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可以省略。以下是信息: