Sql 如何从多个表中插入到一个表中?

Sql 如何从多个表中插入到一个表中?,sql,sql-insert,libreoffice-base,Sql,Sql Insert,Libreoffice Base,我会给你举一个例子,在三张不同的桌子上,用分和秒给你打分 T_GRADES ID_GRADE - Primary Key - Autoincrement GRADE - Numeric (all numbers from 0 to 359) T_MINUTES ID_MINUTE - Primary Key - Autoincrement MINUTE - Numeric (all numbers from 0 to 59) T_SECONDS ID_SECOND - Primary Key

我会给你举一个例子,在三张不同的桌子上,用分和秒给你打分

T_GRADES
ID_GRADE
- Primary Key
- Autoincrement
GRADE
- Numeric (all numbers from 0 to 359)

T_MINUTES
ID_MINUTE
- Primary Key
- Autoincrement
MINUTE
- Numeric (all numbers from 0 to 59)

T_SECONDS
ID_SECOND
- Primary Key
- Autoincrement
SECOND
- Numeric (all numbers from 0 to 59)
通过这个查询,我可以看到所有三个表中的所有数据

SELECT "T_GRADES"."GRADE", "T_MINUTES"."MINUTE", "T_SECONDS"."SECOND"
FROM "T_GRADES" "T_GRADES", "T_MINUTES" "T_MINUTES", "T_SECONDS" "T_SECONDS"
ORDER BY "GRADO", "PRIMO", "SECONDO"
现在,我如何选择INSERT到第四个名为T_GMS的表中,这些字段就像所有三个表之间的交叉联接一样

T_GMS
ID_GMS
- Primary Key
- Autoincrement
GRADE
- Numeric (all numbers from 0 to 359)
PRIME
- Numeric (all numbers from 0 to 59)
SECOND
- Numeric (all numbers from 0 to 59)

非常感谢您的回答。

要根据查询结果创建新表,您可以在开始之前使用INTO[table]命令。 e、 g

如果您的表已经存在,则在选择之前必须使用INSERT INTO[table]命令

INSERT INTO [Tbl_NewTable] SELECT * FROM [tbl_User],[tbl_Role] 

确保查询结果中选定的列必须与新表列相同,以便从查询结果创建新表,您可以在开始之前使用INTO[table]命令。 e、 g

如果您的表已经存在,则在选择之前必须使用INSERT INTO[table]命令

INSERT INTO [Tbl_NewTable] SELECT * FROM [tbl_User],[tbl_Role] 

确保查询结果中选定的列必须与新表列相同

假设存在第四个表,只需执行以下操作即可

INSERT INTO T_GMS ("GRADE", "PRIME", "SECOND")
SELECT "GRADE", "MINUTE", "SECOND"
FROM "T_GRADES", "T_MINUTES", "T_SECONDS"
ORDER BY "GRADE", "MINUTE", "SECOND"
主键将自动生成,您可以按照T_GMS后面括号中列出的列的顺序指定哪些值进入哪些列


为了简单起见,我删掉了所有别名(我认为您不需要它们)。另外,您的SQL在命名上似乎有点混乱,所以请检查。

假设您的第四个表存在,您只需执行以下操作即可

INSERT INTO T_GMS ("GRADE", "PRIME", "SECOND")
SELECT "GRADE", "MINUTE", "SECOND"
FROM "T_GRADES", "T_MINUTES", "T_SECONDS"
ORDER BY "GRADE", "MINUTE", "SECOND"
主键将自动生成,您可以按照T_GMS后面括号中列出的列的顺序指定哪些值进入哪些列


为了简单起见,我删掉了所有别名(我认为您不需要它们)。此外,您的SQL在命名方面似乎有点混乱,因此请检查。

Owais,我必须从“三个”不同的表中选择“三个字段”,而不仅仅是从“一个”表中选择,才能从需要使用的select语句创建新表。
create table。。在“SQL”中选择..
——您编写了一个T-SQL答案,但是
SQL
标记引用的是标准SQL,而不是特定的DBMSproduct@LucaDELPARTITA是的,您可以从不同的表中选择列。我必须从“三个”不同的表中选择“三个字段”,而不仅仅是从“一个”表中选择,要从SELECT语句创建新表,需要使用
createtable。。在“SQL”中选择..
——您编写了一个T-SQL答案,但是
SQL
标记引用的是标准SQL,而不是特定的DBMSproduct@LucaDELPARTITA是的,您可以从不同的表中选择与问题无关的列,但是:与问题无关,但是: