2013-07-24 4 views
1

DB 1SQL вставить в таблицу из таблиц

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 | 
+-------+------+-------+----------+ 

Как заполнить таблицу C и D из A и B с одним кодом Php? Xs В таблице А и Таблице B, у меня есть 15,000 ~ строка Для C нужно сделать для каждого элемента 1 строки для D нужно сделать для каждого элемента 30 строки с разными значениями (которые приведены в таблице А и Таблице 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' 

ответ

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 будет два заявления:

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; 
+0

Спасибо за решение, его работать отлично. :) –

0

Для вставки в TableC

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

Для вставки в внесенного

INSERT INTO TableD (ID,Meta, MetaValue) 
select id,'price',Price from TableA 
Union 
select id,'stock',Stock from TableB