gpt4 book ai didi

mysql - 如何选择 2 列的唯一组合并将结果插入具有自动增量功能的第三个表中

转载 作者:行者123 更新时间:2023-11-29 14:22:32 24 4
gpt4 key购买 nike

我有一个名为 pat_authors 的表,有 2 列 - 姓氏、名字首字母我想选择两列的不同组合。以下命令可检索正确的信息:

select distinct last_name, first_initials from pat_authors;

但是,我想检索相同的信息,然后将其插入到另一个名为 unique_authors 的表中,其中 unique_authors 有 3 列 -authorID、last_name、first_initials。

我已经尝试了很多代码变体,我快要疯了。以下是我认为最接近正确的两次尝试:

select distinct author_last_name, author_initials into uniqueauthors from pat_authors;

这给了我一个错误 - 1327:未声明的变量:uniqueauthors

我也尝试过

insert into uniqueauthors select distinct author_last_name, author_initials from pat_authors;

这给了我错误代码:1136。列计数与第1行的值计数不匹配。这里我想我会没事的,因为我的authorID列是非空自动递增

最佳答案

它不起作用的原因是 INSERT 语句不知道将 SELECT 中的两列中的数据插入到哪两列中。您需要显式指定要插入的列:

INSERT INTO uniqueauthors (last_name, first_initials)
SELECT DISTINCT author_last_name, author_initials
FROM pat_authors

或者您可以隐式保留列规范。但是,如果您这样做,则需要确保 SELECT 中的列数(按匹配顺序)与表定义中的列数相同(甚至包括自动递增列)。怎么还能让列自动递增呢?您只需将 NULL 指定为 SELECT 中的第一列即可:

INSERT INTO uniqueauthors 
SELECT DISTINCT NULL, author_last_name, author_initials
FROM pat_authors

有用提示:每当您尝试将 NULL 值插入自动递增列时,它只会插入自动递增值。

关于mysql - 如何选择 2 列的唯一组合并将结果插入具有自动增量功能的第三个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11531761/

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