2

テーブルから新しく作成されたテーブルに単一の列のみをコピーしようとしています。

ここに私のSQLがあります:

CREATE TABLE whatever(
            id INT NOT NULL AUTO_INCREMENT,
            PRIMARY KEY(id),
            uid INT,
            can_view TINYINT DEFAULT 0
        )

これは問題なく動作しますが、「uid」列にユーザー テーブルの「id」値を入力するように変更する必要があります。

誰でもこれについてどうすればよいか考えていますか?

私は試した

uid INT (SELECT id FROM users)

うまくいかないようです

4

5 に答える 5

4
INSERT INTO whatever (uid)
SELECT id
FROM users

挿入...選択

または、お好きなように:

CREATE TABLE whatever (
    id INT NOT NULL AUTO_INCREMENT,
    PRIMARY KEY(id),
    uid INT,
    can_view TINYINT DEFAULT 0
)
SELECT NULL AS id, id AS uid, 0 AS can_view
FROM users

テーブルの作成 ... 選択

于 2012-07-20T12:07:43.127 に答える
1

作成後 - 次のようなもの:

INSERT into whatever( uid ) select id from users
于 2012-07-20T12:08:02.923 に答える
1

選択として作成:

CREATE TABLE whatever(
        id INT NOT NULL AUTO_INCREMENT,
        PRIMARY KEY(id),
        uid INT,
        can_view TINYINT DEFAULT 0
    ) AS SELECT id AS uid FROM users;
于 2012-07-20T12:12:54.537 に答える
0
insert into whatever(uid ) values select id from users
于 2012-07-20T12:08:22.023 に答える
0

これが簡単な答えであり、きっとあなたを助けるでしょう.

INSERT into whatever(uid) VALUES (SELECT id FROM users)

ありがとう。

于 2012-07-20T12:12:43.923 に答える