INSERT INTO Agent (agentID, agentName, locationID)
SELECT DISTINCT pantodata.agentID, pantodata.agentName FROM pantodata
CASE
WHEN pantodata.AgentTown = 'Stirling' THEN locationID = 6
WHEN pantodata.AgentTown = 'Dunblane' THEN locationID = 3
END
FROM pantodata
Pantodata table:
agentID AgentName AgentTown
100 John Stirling
101 Jack Dunblane
Location table:
locationID City
1 Bannockburn
2 Dollar
3 Dunblane
4 Falkirk
5 Menstrie
6 Stirling
Agent table:
agentID agentName locationID
我正在尝试将 pantodata 中的 agentID 和 pantodata 中的 agentName 插入到代理表中。然后,我尝试检查所述代理所在的城镇(来自 pantodata 表),然后将 locationID(在代理表内)分配给某个数字,具体取决于他们来自 pantodata 表中指定的城镇。
最佳答案
查询中存在一些语法错误。尝试下面的更正版本。
INSERT INTO Agent (agentID, agentName, locationID)
SELECT DISTINCT pantodata.agentID, pantodata.agentName,
CASE
WHEN pantodata.AgentTown = 'Stirling' THEN 6
WHEN pantodata.AgentTown = 'Dunblane' THEN 3
END
FROM pantodata
使用位置
表。这假设位置表中的 locationid
和 city
之间存在一对一关系。
INSERT INTO Agent (agentID, agentName, locationID)
SELECT p.agentID, p.agentName, l.locationid
FROM pantodata p
JOIN Location l on p.AgentTown = l.city
关于mySQL:当值x = ' '然后值y = 6时插入选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33784286/