日期:2014-05-19  浏览次数:20631 次

求一条SQL语句,在线等。。。。
表A是会员表,表B是公司表
----------------------
表A的字段是:
member_id           --主键
username
password
email
----------------------
表B的字段是:
company_id       --主键
member_id         --表A的外键(会员ID)
company_name
address
connector
--------------------
我现在想把表B中的内容追加到表A中,追加的字段是
company_name
address
connector

请问这样的语句如何写呢?谢谢!!!!




------解决方案--------------------
這樣?

Select
A.*,
B.company_name,
B.address,
B.connector
From
A
Left Join
B
On
A.member_id= B.member_id
------解决方案--------------------
或者

Select
A.*,
B.company_name,
B.address,
B.connector
From
A, B
Where
A.member_id= B.member_id
------解决方案--------------------
alter table 表A add company_name varchar(255)
alter table 表A add address varchar(1000)
alter table 表A add connector varchar(100)
go
update 表A
set company_name=表B.company_name,
address=表B.address,
connector=表B.connector
from 表A,表B
where 表A.member_id=表B.member_id
------解决方案--------------------
我理解错了?
------解决方案--------------------
select a.*,b.company_name,b.address,b.connector
from A inner join B
on a.member_id=b.member_id
order by a.member_id
------解决方案--------------------
--应该是用右连接吧
select a.*,b.company_name,b.address,b.connector from a right join b
on a.memeber_id=b.member_id
------解决方案--------------------
创建新的表来取代A表
select * into 新表 from
(select a.*,b.company_name,b.address,b.connector
from A left join B
on a.member_id=b.member_id)t
------解决方案--------------------
gahade(与君共勉)
正解~
------解决方案--------------------
可以,如果想修改表名:

1,打开企业管理器 2,选中某数据库注册 3,右键打开属性 4,打开 服务器设置 5,看到服务器行为,然后选中 允许对系统目录进行修改 6,打开查询分析器 7,写sql,
update sysobjects set name=\ '旧表名\ ' where name=\ '新表名\ '

或者以临时表作为新表,然后再用 'select * into... '把临时表的内容导入到新的A中
------解决方案--------------------
如果使用这种方法的话,现命名为其他名字,然后把表A删掉(不考虑表之间的约束),把新命名的表更名为表A,这样可以吗?
------
可以

--生成新表
select * into TempTable from
(select a.*,b.company_name,b.address,b.connector
from A left join B
on a.member_id=b.member_id)t
--刪除A表
Drop Table A
--改名
EXEC sp_rename 'TempTable ', 'A '

------解决方案--------------------
使用selet * into 表 from 新表会导致主键,索引,约束,触发器丢失.