mariadb 如何基于其他两个表的联接插入值(MySQL)

ttp71kqs  于 2023-01-30  发布在  其他
关注(0)|答案(1)|浏览(132)

我很抱歉,如果这已经问过了,我已经经历了几十个问题,没有一个解决我的问题。
下面是我的数据表的示例:表一
| 程式|范畴|
| - ------|- ------|
| 杂技演员|PDF格式|
| Photoshop软体|图形学|
| Ef后|视频|
这里,我们有PDF类别中的Acrobat程序,Photoshop类别中的图形,After Effects类别中的视频。我有一个类别表和一个程序表:

CREATE TABLE categories
(
cat_id int AUTO_INCREMENT,
category varchar(255),
PRIMARY KEY (cat_id)
);
CREATE TABLE programs
(
    program_id int AUTO_INCREMENT,
    program varchar(255),
    cat_id int,
    PRIMARY KEY (program_id),
    FOREIGN KEY (cat_id) REFERENCES categories(cat_id)
);

ALTER TABLE programs AUTO_INCREMENT=100;

我的问题是,我需要将program表中的cat_id链接到表1中的program列。
表1:程序-〉类别
类别:类别-〉cat_id
程序:程序-〉目录ID
为了完成programs表,我需要做什么类型的连接(或其他操作)?现在,cat_id列全部为"null"。
我尝试过将categories表链接到Table1(希望这样可以简化与programs表的连接),以及INSERT INTO programs ... INNER JOIN on ...的各种组合,但是我得到了"不明确"的错误或其他错误,没有任何效果。

6tdlim6h

6tdlim6h1#

这就是你想要的
只能将一个表中的某些列复制到另一个表中:

insert into programs(program, cat_id)
select t.program, c.cat_id
from table1 t
inner join categories c on c.category = t.category

Demo here

相关问题