-1

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

vote('id', 'question_id', 'ip_id')

ip('id','ip_addr')

私はこのようなことをしたい:

INSERT INTO SELECT `vote`.`question_id`, `ip`.`ip_addr` 
            FROM `vote` 
            LEFT JOIN `ip` 
            ON `vote`.`ip_id` = `ip`.`id` VALUES '2','127.0.0.1'

上記のコードは機能していません、何か考えはありますか?

4

2 に答える 2

2

の構文INSERT INTO SELECTは次のようになります。

INSERT INTO Table2
(Column1, Column3)
SELECT Column1, Column3
FROM Table1

したがって、クエリは次のようになります。

INSERT INTO <TableName> (`question_id`, `ip_addr`)
            SELECT `vote`.`question_id`, `ip`.`ip_addr` 
            FROM `vote` 
            LEFT JOIN `ip` 
            ON `vote`.`ip_id` = `ip`.`id`
于 2012-10-13T07:51:28.530 に答える
0

次のいずれかの方法を使用して、既存のテーブルに行を挿入できます。

INSERT INTO vote (id, question_id, ip_id)
VALUES (....)

また

INSERT INTO vote (id, question_id, ip_id)
SELECT id, question_id, ip_id 
FROM
    <some existing tables, optionally using joins, where clauses etc., to select the data to insert>

あなたの場合、IPテーブルとテーブルVOTEに同時にレコードを挿入しようとしているようですが、それは不可能です。

最初に上記の最初の構文を使用して IP テーブルにレコードを挿入し、次にVOTE2 番目のオプションを使用してテーブルに挿入する必要があります。

于 2012-10-13T07:48:28.840 に答える