我有两个表:更改数据库结构:需要一个SQL查询
connections
id | publisherId | authorId
和
books
id | connectionId | title
我想合并这些表只得到一个表:
books
id| publisherId | authorId | title
我怎样才能做到这一点只有一个SQL查询?
我有两个表:更改数据库结构:需要一个SQL查询
connections
id | publisherId | authorId
和
books
id | connectionId | title
我想合并这些表只得到一个表:
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
未经测试,但应该这样做。我假设你想要书籍表中的ID,否则你需要c.id而不是b.id.
然后您可以删除旧表并将其重命名为任何您想要的。
它工作。谢谢! – user1267570
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
部分查询:
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语句测试来确保您的列名是您想要的。如果要更改列名称,请更改所选每列的as ...
名称。
您不能在一个查询中执行DML和DDL操作。所以你需要将它拆分为:a)修改表b)修改数据 – zerkms
实际上他想做四件事,创建一个新表,用joe建议的INNER JOIN填充它,然后放下旧书表并重命名新表书籍。 –