首页 新闻 搜索 专区 学院

SqlServer

0
悬赏园豆:20 [已解决问题] 解决于 2012-03-15 13:15

两张表有共同字段,但不是主外键关系,就比如AB两张表都有Name这个字段,但他门不是主外键关系,并且这两张表除了有Name这个共同字段,在没有其他联系,我如果要连查的话请问该怎么办?请高手指点一下,谢了。

简单点,再简单点的主页 简单点,再简单点 | 初学一级 | 园豆:4
提问于:2012-03-15 12:57
< >
分享
最佳答案
0

加了外键就存在约束、 如果不满足约束报错。 没有外键随便怎么加不会报错,就是没有满足条件查找不到数据。

收获园豆:10
秋风sao落叶 | 初学一级 |园豆:44 | 2012-03-15 13:13
其他回答(2)
0

直接把A表的Name字段与B表的Name字段的值作条件比较。

Select A.* from A inner join B where A.Name=B.Name and ...

收获园豆:10
悟行 | 园豆:12429 (专家六级) | 2012-03-15 13:00

嗯,我刚才也试过了,可以。但是这种和有主外键的作条件比较有啥区别呀

@李晋: 外键只是你心中的一个关系而已,不设置外键,只要数据有这个关系,并且你心中也有这个关系,他们之间就没有多少区别。

支持(0) 反对(0) 悟行 | 园豆:12429 (专家六级) | 2012-03-15 13:05

我知道咋写  我是说像这种不是主外键的AName=BName和如果Name是主外键关系的有啥区别

0

有主外键时,数据表会更严谨一些,数据会更安全一些;没有主外键,数据照样可以建立关系,联合查询;如果要通过某个列名去作关联条件,列名称可以不一样,但数据类型必须是一样的;所以说,你可以通过name这个字段去作条件进行联合查询。。。

KivenRo | 园豆:1722 (小虾三级) | 2012-03-15 13:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册