0

2 つのテーブルがあり、両方に という名前personIDのフィールドが 1 つあります。一方のテーブルでは自動インクリメントされ、別のテーブルに書き込みたいと考えています。同じページで発生します。私は個人IDを生成し、selectを使用して呼び出して別のものに書き込もうとしましたが、機能しません。私を助けてください 。

動作しない PHP コードは次のようになります。

$result2 = mysql_query ("
    INSERT INTO 'topics' ('personID') 
        SELECT personID 
        FROM persons 
        WHERE personID = 1
"); 
4

5 に答える 5

1

2 番目のテーブルの PersonID が 1 である最初のテーブルに、2 番目のテーブルから PersonID を挿入するようにデータベースに指示しています。

と言うのと同じInsert 1 into first table tableです。

$result2 = mysql_query ("INSERT INTO topics (personID) VALUES (1)");  // equivalent to your query.
于 2013-10-31T08:48:04.250 に答える
0

一重引用符を使用していることを除いて、クエリに問題はありません。

INSERT INTO topics (personID) 
SELECT personID FROM persons where personID = 1

MySQL で予約語を使用している場合は、名前を囲むためにバッククォート ` (通常はキーボードの 1 の隣) を使用する必要があります。

次の例を参照してください。

mysql> select * from test1;
+------+-------+
| id   | varry |
+------+-------+
|    1 | aaa   |
+------+-------+
1 row in set (0.07 sec)

mysql> select * from test2;
+------+-------+-------+
| id   | barry | third |
+------+-------+-------+
|    1 | ccc   |  NULL |
| NULL | d     |     1 |
| NULL | d     |     2 |
| NULL | d     |     3 |
+------+-------+-------+
4 rows in set (0.00 sec)

mysql> insert into test1 (id) select id from test2 where barry='ccc';
Query OK, 1 row affected (0.04 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> insert into test1 ('id') select 'id' from test2 where barry='ccc';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near ''id')
 select 'id' from test2 where barry='ccc'' at line 1
mysql>
于 2013-10-31T08:47:46.273 に答える