我正在尝试创建一个MS SQL数据库,我对此很陌生。 假设我有表格列
Table1=[Client_ID, Client_Name]
Table2=[Product, Client_ID]. (Client_ID is a FK to Table1)
现在我想更新Table 2
中的数据,我已在Table 1
中获得了一些信息。如果我只知道T2
和Product
,有没有办法插入Client_Name
? (以某种方式根据他的名字在第一个表格中查找client_ID
)如果我在Table1
中没有该特定客户端,如果在插入T2
期间可以插入,该怎么办?
此外,我需要从T2
获取数据,但我希望看到一个[Product, Client_Name]
的表格。在SQL中可以进行这种查找/替换吗?
我知道我可以事先尝试解决这些问题 - 我使用Excel作为访问我的数据库的前端,但我希望有一种更简单的方法来使用SQL本身。
答案 0 :(得分:0)
您可以按如下方式插入表2
'You are passing @Product, @Client_Name
'First look for whether client name is present in table1
declare @clientId as integer;
select @clientId =Client_ID from Table1 where Client_Name=@Client_Name
if @clientId >0 'When there is client name in Table1
begin
insert into table2
values(@Product, @clientId)
end
else 'There is no client name, so we have to insert client name first then gets its id
begin
insert into table1
values(@Client_Name)
'Get id of newly added client, you can done this many way, but here is the simplest way like previous
select @clientId=Client_ID from Table1 where Client_Name=@Client_Name
'Now insert into table2
insert into table2
values(@Product, @clientId)
end
您可以使用加入
以您想要的方式获取数据Select Table2.Product, Table1.Client_Name from table1 inner join table2 on table1.Client_ID = table2.Client_ID