gpt4 book ai didi

mysql - 创建新行,而 1 列中的数据取自其他表

转载 作者:行者123 更新时间:2023-11-29 13:30:10 26 4
gpt4 key购买 nike

我需要知道特定 map 上生物的所有唯一 ID 并进行此查询。

select DISTINCT id a from creature
where id in( select entry from creature_template where map=209);

效果很好。

现在我想在其他表中插入新行,其中第一列与第一个查询的数字不同,其他列是常量。

insert into creature_loot_template (entry,ChanceOrQuestChance,groupid,mincountOrRef)
select entry,'0.1','1','-11111' from creature_template
where entry=(select DISTINCT id a from creature where id in( select entry from creature_template where map=209));

结果 - 子查询返回多于 1 行。我需要在那里使用某种连接或联合吗?

最佳答案

要解决这个问题,您必须输入 IN 而不是 =

INSERT INTO creature_loot_template(entry, 
ChanceOrQuestChance,
groupid,
mincountOrRef)
SELECT entry, '0.1', '1', '-11111'
FROM creature_template
WHERE entry IN (
SELECT DISTINCT id a
FROM creature
WHERE id IN (
SELECT entry
FROM creature_template
WHERE map = 209
)
);

= 期望进行一对一的比较,IN 进行一对多的比较。

<小时/>

进一步阅读您的查询,由于您为除条目之外的每一列插入相同的值,我认为您可能能够通过以下方式更轻松地完成您想要的任务:

INSERT INTO creature_loot_template(entry, 
ChanceOrQuestChance,
groupid,
mincountOrRef)
SELECT DISTINCT entry,
'0.1',
'1',
'-11111'
FROM creature_template ct
INNER JOIN creature c ON ct.entry = c.id
WHERE ct.map = 209;

关于mysql - 创建新行,而 1 列中的数据取自其他表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19575337/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com