0

私は2つのテーブルを持っています:

connections
id | publisherId | authorId

books
id | connectionId | title

これらのテーブルをマージして、テーブルを 1 つだけ取得したい:

books
id| publisherId | authorId | title

たった 1 つの SQL クエリでこれを行うにはどうすればよいですか?

4

2 に答える 2

3
CREATE TABLE newtable
SELECT b.id, c.publisherId, c.authorID, b.title
FROM books b
INNER JOIN connections c
on c.id = b.connectionId

テストされていませんが、これでうまくいくはずです。book テーブルからの ID が必要だと思います。それ以外の場合は、b.id の代わりに c.id が必要です。

次に、古いテーブルを削除して、これを好きな名前に変更できます。

于 2012-05-10T02:14:50.790 に答える
0
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 ...列名を変更する場合は、選択した各列の名前を変更します。

于 2012-05-10T02:21:46.067 に答える