gpt4 book ai didi

mysql - 填充临时表

转载 作者:行者123 更新时间:2023-11-30 23:25:17 25 4
gpt4 key购买 nike

我正在尝试使用现有表(员工)中的 4 列(fname、minit、lname、bdate)填充我的临时表 (emp_department_1)。 employee 表中的 dno=1。有什么建议吗?

mysql> select * from employee;
+----------+-------+---------+-----------+------------+--------------------------+------+--------+-----------+-----+
| Fname | Minit | Lname | SSN | Bdate | Address | Sex | Salary | Superssn | Dno |
+----------+-------+---------+-----------+------------+--------------------------+------+--------+-----------+-----+
| John | B | Smith | 123456789 | 1955-01-09 | 731 Fondren, Cary, NC | M | 31500 | 333445555 | 5 |
| Franklin | T | Wong | 333445555 | 1945-12-08 | 638 Voss, Cary, NC | M | 42000 | 888665555 | 5 |
| Alicia | J | Zelaya | 999887777 | 1958-07-19 | 3321 Castle, Apex, NC | F | 25000 | 987654321 | 4 |
| Jennifer | S | Wallace | 987654321 | 1931-06-20 | 291 Berry, Garner, NC | F | 43000 | 888665555 | 4 |
| Rameish | K | Naraya | 666884444 | 1952-09-15 | 975 Fire Oak, Angier, NC | M | 39900 | 333445555 | 5 |
| Joyce | A | English | 453453453 | 1962-07-31 | 5631 Rice, Raleigh, NC | F | 26250 | 333445555 | 5 |
| Ahmad | V | Jabbar | 987987987 | 1959-03-29 | 980 Dallas, Cary, NC | M | 25000 | 987654321 | 4 |
| James | E | Borg | 888665555 | 1927-11-10 | 450 Stone, Cary, NC | M | 55000 | NULL | 1 |
+----------+-------+---------+-----------+------------+--------------------------+------+--------+-----------+-----+

James E Borg 是唯一一个 dno=1 的人。

最佳答案

您只需要一个简单的 INSERT INTO ... SELECT...FROM 语句。建议列出 () 中的列,假设 emp_department_1 中的列顺序与我在 SELECT 中的顺序不完全匹配.

INSERT INTO emp_department_1 (fname, minit, lname, bdate)
SELECT fname, minit, lname, bdate FROM employee WHERE dno = 1

查看 MySQL syntax referenceINSERT...SELECT 语法上。

更新

因为这是一个临时表,尚未创建,所以使用 CREATE TEMPORARY TABLE ... SELECT syntax :

CREATE TEMPORARY TABLE emp_department_1
SELECT fname, minit, lname, bdate FROM employee WHERE dno = 1

没有必要在临时表中定义列类型,但如果需要您可以,并且如果需要也可以创建索引。

CREATE TEMPORARY TABLE emp_department_1 (
fname VARCHAR(64) NOT NULL,
minit VARCHAR(64) NULL,
lname VARCHAR(64) NOT NULL,
bdate DATE NOT NULL,
PRIMARY KEY (fname, lname, bdate) /* not that you would actually do this */
) SELECT fname, minit, lname, bdate FROM employee WHERE dno = 1

关于mysql - 填充临时表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13637772/

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