【100分】 求 一 条 简 单 的 sql 语 句

KaKaKaKa 2010-09-26 11:49:28
User表:

UserID UserName Party PartyName
001 John 000001 DV
002 Leo 000002 AC
003 Ken 000003 KE


Party表:

PartyID PartyName
000001 DV
000002 AC
000003 KE

----------------------------------------------

现在已知一个UserID、UserName和所在的部门名PartyName,要求将其插入到User表中,PartyID必须一起带进去。
假设已知的UserID为004,UserName为Mike,PartyName为AC(在Party表中有对应)。
能否一条sql语句搞定?

谢谢


...全文
193 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
王向飞 2010-09-27
  • 打赏
  • 举报
回复
这么多回答楼主还不满意么?
hchjjun 2010-09-27
  • 打赏
  • 举报
回复
一搞就定呀
abuying 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yangjianpro_hotmail 的回复:]

insert into [user] select '004','Mike', partyid,partyname from party where partyname='AC'

正解 谢谢各位

还有个疑问:
假设我Party表里还有个PartyID为000004的,PartyName也叫AC (当然假设存在这一现象)

我插入到User表时如果发现有同一个PartyN……



[/Quote]

那改一下SQL

insert into [user] select '004' , 'Mike',max(PartyID) ,PartyName from Party group by partyname where PartyName = 'AC' 
pengpeng409 2010-09-27
  • 打赏
  • 举报
回复
select userid='004',username='Mike',partyid,partyname from party
where partyname='AC'
Olive_Guo 2010-09-27
  • 打赏
  • 举报
回复
insert into [user]
select top(1) '004' , 'Mike',PartyID ,PartyName from party where PartyName = 'AC' order by PartyID
sbymdh2003 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 mayala520yy 的回复:]
SQL code
create table [User](UserID varchar(10),UserName varchar(10),Party varchar(10),PartyName varchar(10))
insert into [User] values('001', 'John', '000001', 'DV')
insert into [User] values('002……
[/Quote]

你要的是个什么结果?
「已注销」 2010-09-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yangjianpro_hotmail 的回复:]

insert into [user] select '004','Mike', partyid,partyname from party where partyname='AC'

正解 谢谢各位

还有个疑问:
假设我Party表里还有个PartyID为000004的,PartyName也叫AC (当然假设存在这一现象)

我插入到User表时如果发现有同一个PartyN……
[/Quote]

insert into [user]
select '004' , 'Mike',PartyID ,PartyName from party p where PartyName = 'AC'
and not exists(select null from party where PartyName = 'AC' and p.PartyID<'004')
Rotel-刘志东 2010-09-26
  • 打赏
  • 举报
回复
insert into [user] select '004' , 'Mike',PartyID ,PartyName 
from party
where PartyName = 'AC'
幸运的意外 2010-09-26
  • 打赏
  • 举报
回复
完全可以呀
insert into [user]
select '004' , 'Mike',PartyID ,PartyName
from party
where PartyName = 'AC'
喜-喜 2010-09-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yangjianpro_hotmail 的回复:]
insert into [user] select '004','Mike', partyid,partyname from party where partyname='AC'

正解 谢谢各位

还有个疑问:
假设我Party表里还有个PartyID为000004的,PartyName也叫AC (当然假设存在这一现象)

我插入到User表时如果发现有同一个PartyName却……
[/Quote]

是的,默认是选出数据表最后一行数据!即000004
KaKaKaKa 2010-09-26
  • 打赏
  • 举报
回复
insert into [user] select '004','Mike', partyid,partyname from party where partyname='AC'

正解 谢谢各位

还有个疑问:
假设我Party表里还有个PartyID为000004的,PartyName也叫AC (当然假设存在这一现象)

我插入到User表时如果发现有同一个PartyName却有多个PartyID时,默认选择第2行的Party数据,即插入的partyID为000004,而不是000003。

谢谢各位,已知在线,完后立即结贴。
mayala520yy 2010-09-26
  • 打赏
  • 举报
回复

SQL code
create table [User](UserID varchar(10),UserName varchar(10),Party varchar(10),PartyName varchar(10))
insert into [User] values('001', 'John', '000001', 'DV')
insert into [User] values('002……
[/Quote]
ws_hgo 2010-09-26
  • 打赏
  • 举报
回复
if object_id('[User]') is not null drop table [User]
go
create table [User](UserID varchar(10),UserName varchar(10),Party varchar(10),PartyName varchar(10))
insert into [User] values('001', 'John', '000001', 'DV')
insert into [User] values('002', 'Leo' , '000002', 'AC')
insert into [User] values('003', 'Ken' , '000003', 'KE')
go
if object_id('Party') is not null drop table Party
go
create table Party(PartyID varchar(10),PartyName varchar(10))
insert into Party values('000001', 'DV')
insert into Party values('000002', 'AC')
insert into Party values('000003', 'KE')
go

insert into [user]
select '004' , 'Mike',PartyID ,PartyName from party where PartyName = 'AC'

select * from [user]
UserID UserName Party PartyName
---------- ---------- ---------- ----------
001 John 000001 DV
002 Leo 000002 AC
003 Ken 000003 KE
004 Mike 000002 AC

(4 行受影响)

ws_hgo 2010-09-26
  • 打赏
  • 举报
回复
if object_id('[User]') is not null drop table [User]
go
create table [User](UserID varchar(10),UserName varchar(10),Party varchar(10),PartyName varchar(10))
insert into [User] values('001', 'John', '000001', 'DV')
insert into [User] values('002', 'Leo' , '000002', 'AC')
insert into [User] values('003', 'Ken' , '000003', 'KE')
go
if object_id('Party') is not null drop table Party
go
create table Party(PartyID varchar(10),PartyName varchar(10))
insert into Party values('000001', 'DV')
insert into Party values('000002', 'AC')
insert into Party values('000003', 'KE')
go

insert into [user]
select '004' , 'Mike',PartyID ,PartyName from party where PartyName = 'AC'

select * from [user]
UserID UserName Party PartyName
---------- ---------- ---------- ----------
001 John 000001 DV
002 Leo 000002 AC
003 Ken 000003 KE
004 Mike 000002 AC

(4 行受影响)

dawugui 2010-09-26
  • 打赏
  • 举报
回复
create table [User](UserID varchar(10),UserName varchar(10),Party varchar(10),PartyName varchar(10))
insert into [User] values('001', 'John', '000001', 'DV')
insert into [User] values('002', 'Leo' , '000002', 'AC')
insert into [User] values('003', 'Ken' , '000003', 'KE')
create table Party(PartyID varchar(10),PartyName varchar(10))
insert into Party values('000001', 'DV')
insert into Party values('000002', 'AC')
insert into Party values('000003', 'KE')
go

insert into [user] select '004' , 'Mike',PartyID ,PartyName from party where PartyName = 'AC'

select * from [user]
/*
UserID UserName Party PartyName
---------- ---------- ---------- ----------
001 John 000001 DV
002 Leo 000002 AC
003 Ken 000003 KE
004 Mike 000002 AC

(所影响的行数为 4 行)

*/
drop table [user],party
hao1hao2hao3 2010-09-26
  • 打赏
  • 举报
回复

insert into [user]
select '004','Mike', partyid,partyname from party where partyname='AC'


dawugui 2010-09-26
  • 打赏
  • 举报
回复
insert into [user] select '004' , 'Mike',PartyID ,PartyName from party where PartyName = 'AC'
fengyun142415 2010-09-26
  • 打赏
  • 举报
回复

insert into [user] select '004' , 'Mike',PartyID ,PartyName from Party where PartyName = 'AC'
fpzgm 2010-09-26
  • 打赏
  • 举报
回复
if object_id('[User]') is not null drop table [User]
go
create table [User](UserID varchar(10),UserName varchar(10),Party varchar(10),PartyName varchar(10))
insert into [User] values('001', 'John', '000001', 'DV')
insert into [User] values('002', 'Leo' , '000002', 'AC')
insert into [User] values('003', 'Ken' , '000003', 'KE')
go
if object_id('Party') is not null drop table Party
go
create table Party(PartyID varchar(10),PartyName varchar(10))
insert into Party values('000001', 'DV')
insert into Party values('000002', 'AC')
insert into Party values('000003', 'KE')
go

insert into [user]
select '004' , 'Mike',PartyID ,PartyName from party where PartyName = 'AC'

select * from [user]
UserID UserName Party PartyName
---------- ---------- ---------- ----------
001 John 000001 DV
002 Leo 000002 AC
003 Ken 000003 KE
004 Mike 000002 AC

(4 行受影响)
jiao3630 2010-09-26
  • 打赏
  • 举报
回复

declare @UserID int
declare @UserName varchar(20)
declare @PartyName varchar(20)

insert into User values(@UserID,@UserName,(select PartyID from Party
where PartyName=@PartyName),@PartyName)

加载更多回复(4)

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧