我创建了以下表格来使用C#和MySQL填充我的数据。
SCIENTIST
-----------------------
scientistID
scientistName
branch
address
phone
fax
url
email
SCIENTISTAREA
------------------------
scientistAreaID
scientistID
areaofscienceID
AREAOFSCIENCE
--------------------
areaofscienceID
areaName
我有一个科学家课程,其中包含科学表格中的所有信息,包括包含科学家所涵盖的每个科学领域的字符串列表。为了在添加查询时更容易,我创建了一个包含每个不同科学领域的字符串列表。我写自己的时候写了这些基本查询。正如你所看到的那样,我已经用@解决了我遇到问题的区域(主要是因为我将使用MySqlParameterCollection.AddWithValue()添加它们):
insert into areaOfscience (
areaName
) values (
'Agricultural science'
);
insert into scientistArea (
scientistID, areaOfscienceID
) values (
@scientistID, @areaOfscienceID
);
insert into scientists (
scientistName, branch, address, phone, fax, url, email
) values (
'A scientists', 'Head Office', '123 Fake St', '0117 38473847', '0117 3746382', 'http://www.google.com', 'me@myhouse.com'
), (
'B scientists', 'Head Office', '123 Fake St', '0121 38473847', '0121 3746382', 'http://www.google.com', 'me@myhouse.com'
);
目前,我正在用科学的每个可用领域填充科学表区域,现在我正在寻找将科学家添加到我的桌子中。每个科学家都涵盖了许多不同的科学领域,我想将所有这些插入到我的数据库中。
非常感谢任何帮助。
答案 0 :(得分:0)
您只需要寻找科学家和区域ID并将其插入scientistArea表。也许像这样的代码可以帮助你,假设没有科学家有重复的名字,也没有区域:
INSERT INTO scientistArea (scientistID, areaOfscienceID)
SELECT scientistID, areaOfscienceID
FROM scientists,
areaOfscience
WHERE scientists.scientistName = 'A scientists' AND
areaOfscience.areaName = 'Agricultural science'