1

DB1

Table A
+-----+--------+---------------+
|  ID |  Price | Date          |
+-----+--------+---------------+
|  1  |    100 |  2013.07.07   |
+-----+--------+---------------+

Table B
+------+--------+-------------+-------+
|  ID  | Name   | Description | Stock |
+------+--------+-------------+-------+
| A-ID |  Name1 |  Good       |   100 |
+------+--------+-------------+-------+

これらからこれらへ

Table C
+------+--------+---------------+--------+
|  ID  | Name   | Description   | Date   |
+------+--------+---------------+--------+
| A-ID | B-Name | B-Description | A-Date |
+------+--------+---------------+--------+

Table D
+-------+------+-------+----------+
|  D_ID | ID   | Meta  | MetaValue|
+-------+------+-------+----------+
|  1    | A-ID | price | A-Price  |
+-------+------+-------+----------+
|  2    | A-ID | stock | B-Stock  |
+-------+------+-------+----------+

A と B から C と D のテーブルを 1 つの PhP コードで埋めるにはどうすればよいですか? xS 表 A と表 B には、15.000~ 行があります C の場合、項目ごとに作成する必要があります D の場合、項目ごとに 1 行作成する必要があります 異なる値を持つ 30 行 (表 A と表 B にあります)

私はこのように「テーブルC」を埋めています

INSERT INTO DB1.C (Name, Description) 
SELECT b.Products_Name, b.Description
FROM DB1.B AS b

UPDATE DB1.C c, DB1.A a
SET c.Date=a.Date
WHERE c.ID=a.ID'
4

2 に答える 2

0

充填テーブル C:

INSERT INTO C (ID, Name, Description, Date)
SELECT A.ID, B.Name, B.Description, A.Date
FROM A INNER JOIN B ON A.ID = B.ID;

テーブル D への入力は、次の 2 つのステートメントになります。

INSERT INTO D (ID, Meta, MetaValue) /*assuming here, that D_ID is auto_increment...*/
SELECT A.ID, 'price', Price
FROM A
UNION ALL
SELECT A.ID, 'stock', B.Stock
FROM A INNER JOIN B ON A.ID = B.ID;
于 2013-07-24T13:11:43.813 に答える
0

TableC に挿入するには

insert into TableCselect b.id,b.name,b.description,a.date 
from TableA a, TableB b 
where a.id = b.id

TableD に挿入するには

INSERT INTO TableD (ID,Meta, MetaValue) 
select id,'price',Price from TableA
Union
select id,'stock',Stock from TableB
于 2013-07-24T13:08:04.333 に答える