| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 185 人关注过本帖
标题:关于表关联的问题
收藏  订阅  推荐  打印 
junxi1
Rank: 3Rank: 3
等级:中级会员
威望:1
帖子:213
积分:2298
注册:2007-9-17
关于表关联的问题

我想用SQL语句写2个表之间关联的语句。
alter table1 add constraint foreign key(table1.column) references table2(column)
这样写总觉得不太正确,请给出正确的书写。
不用inner join 或 left / right join
搜索更多相关主题的帖子: join  constraint  语句  column  left  
2007-10-12 10:46
tanghuawei
Rank: 4
等级:高级会员
威望:2
帖子:493
积分:5078
注册:2006-3-16

两个数据库在同一台服务器上,直接通过 DBName.OwnerName.TBName 方式引用;否则,参考如下代码:

--创建链接服务器
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
go

--查询示例
select * from srv_lnk.数据库名.dbo.表名

--导入示例
select * into 表 from srv_lnk.数据库名.dbo.表名

--以后不再使用时删除链接服务器
exec sp_dropserver 'srv_lnk','droplogins'
go

--如果只是临时访问,可以直接用openrowset
--查询示例
select * from openrowset('SQLOLEDB'
,'sql服务器名';'用户名';'密码'
,数据库名.dbo.表名)


--导入示例
select * into 表 from openrowset('SQLOLEDB'
,'sql服务器名';'用户名';'密码'
,数据库名.dbo.表名)


汽车尾气检测网络系统QQ:357766186__MSN:MSNTHW19850316@hotmail.com
2007-10-12 11:04
junxi1
Rank: 3Rank: 3
等级:中级会员
威望:1
帖子:213
积分:2298
注册:2007-9-17

我要的是在一个数据库中的2个表

foreach( in ){ }
2007-10-12 11:05
purana
Rank: 12Rank: 12Rank: 12
来自:广东-广州
等级:版主
威望:66
帖子:6040
积分:61390
注册:2005-6-17

这是没有用join的
select table1.col1,table2.col1 from table1,table2 where table1.col1=table2.col2
使用join
select table1.col,table2.col1 from table1 join table2 on table1.col=table2.col

我的msn: myfend@hotmail.com
2007-10-12 11:28
junxi1
Rank: 3Rank: 3
等级:中级会员
威望:1
帖子:213
积分:2298
注册:2007-9-17

哈哈,谢了,我知道这种,我想用alter table1 add constraint foreign key(table1.column) references table2(column)方式的啊。
但这个语句我运行时不行。所以我搞不清问题出在哪里?

foreach( in ){ }
2007-10-12 11:36
purana
Rank: 12Rank: 12Rank: 12
来自:广东-广州
等级:版主
威望:66
帖子:6040
积分:61390
注册:2005-6-17

alter table1 add constraint foreign key(table1.column) references table2(column)
这个只是用来建立参照完整性约束而已.
跟你后面说的inner join 或 left / right join
跟本就是两码事.
汗.
[CODE]create table table1(
id int not null,
col1 varchar(100),
constraint PK_ID primary key(id)
)
go
create table table2(
id int not null,
col1 varchar(100)
)
go
alter table table2 add constraint fk foreign key(id) references table1(id)
go
insert table1 select 1,'num1'
union select 2,'num2'
go
insert table2 select 1,'ck'
select table1.col1,table2.col1 from table1 join table2 on table1.id=table2.id
drop table table2,table1[/CODE]



我的msn: myfend@hotmail.com
2007-10-12 11:55
缘吇弹
Rank: 12Rank: 12Rank: 12
来自:A与C之间
等级:版主
威望:43
帖子:3024
积分:33034
注册:2007-7-2

啊哦,混淆概念了.

Repeat  Life=Study;Until (death);        //<a href="http://hi.baidu.com/yzidan" target="_blank"><font color="green">***>[B]欢 迎 光 临 我 的 博 客[/B]
2007-10-12 13:31
junxi1
Rank: 3Rank: 3
等级:中级会员
威望:1
帖子:213
积分:2298
注册:2007-9-17

谢了。

foreach( in ){ }
2007-10-12 13:32
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.065331 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved