Mysql 更改数据库结构:需要SQL查询
我有两张桌子:Mysql 更改数据库结构:需要SQL查询,mysql,sql,database,Mysql,Sql,Database,我有两张桌子: connections id | publisherId | authorId 及 我要合并这些表以仅获得一个表: books id| publisherId | authorId | title 如何仅使用一个SQL查询就可以做到这一点 CREATE TABLE newtable SELECT b.id, c.publisherId, c.authorID, b.title FROM books b INNER JOIN connections c on c.id = b.
connections
id | publisherId | authorId
及
我要合并这些表以仅获得一个表:
books
id| publisherId | authorId | title
如何仅使用一个SQL查询就可以做到这一点
CREATE TABLE newtable
SELECT b.id, c.publisherId, c.authorID, b.title
FROM books b
INNER JOIN connections c
on c.id = b.connectionId
未经测试,但这应该可以做到。我假设您需要books表中的ID,否则您需要c.ID而不是b.ID
然后,您可以删除旧表并将其重命名为您想要的任何名称
CREATE TABLE connections_books
SELECT books.id as id,
connections.publisherId as publisherId,
connections.authorId as authorId,
books.title as title
FROM books join connections on books.connectionId = connections.id;
未经测试,但这应该可以做到。我假设您需要books表中的ID,否则您需要c.ID而不是b.ID
然后,您可以删除旧表并将其重命名为您想要的任何名称
CREATE TABLE connections_books
SELECT books.id as id,
connections.publisherId as publisherId,
connections.authorId as authorId,
books.title as title
FROM books join connections on books.connectionId = connections.id;
首先仅使用选择部分测试查询:
SELECT books.id as id,
connections.publisherId as publisherId,
connections.authorId as authorId,
books.title as title
FROM books join connections on books.connectionId = connections.id;
一旦这给了您想要的,就开始创建表
确保新表中的列名正确非常重要。使用select语句测试以确保列名符合您的要求。如果要更改列名,请将所选每列的更改为…
名称
首先仅使用选择部分测试查询:
SELECT books.id as id,
connections.publisherId as publisherId,
connections.authorId as authorId,
books.title as title
FROM books join connections on books.connectionId = connections.id;
一旦这给了您想要的,就开始创建表
确保新表中的列名正确非常重要。使用select语句测试以确保列名符合您的要求。如果要更改列名,请将所选每列的更改为…
名称。不能在一个查询中同时执行DML和DDL操作。因此您需要将其拆分为:a)修改表b)修改数据实际上他想做四件事,创建一个新表,按照joe的建议使用内部联接填充它,然后删除旧的books表并将新表重命名为books。您不能在一个查询中同时执行DML和DDL操作。因此,您需要将其拆分为:a)修改表b)修改数据实际上他想做四件事,创建一个新表,按照joe的建议使用内部联接填充它,然后删除old books表并将新表重命名为books。