我有两张桌子:
表1:
ID| Name
1 | firstname1
2 | firstname2
3 | firstname3
表2:
ID| Name
1 | lastname1
2 | lastname2
3 | lastname3
我希望将insert组合table1和table2插入table3示例: 表3:
ID| Fullname
1 | firstname1-lastname1
2 | firstname1-lastname2
3 | firstname1-lastname3
4 | firstname2-lastname1
5 | firstname2-lastname2
6 | firstname2-lastname3
7 | firstname3-lastname1
8 | firstname3-lastname2
9 | firstname3-lastname3
尝试使用php(pdo),但速度非常慢......我必须创建10 000 000条记录(合并后)
我的php:
<?php
//get firstnames, get lastnames before and...
foreach ($firstnames as $firstname) {
foreach ($lastnames as $lastname) {
$this->pdo->prepare("INSERT INTO `table3` (`fullname`) VALUES(?)")->execute([$firstname['name'] . '-' . $lastname['name']]);
}
}
Soo,我如何创建一个混合数据的查询?
Thans
答案 0 :(得分:0)
使用下面的SQL在table3中插入数据
INSERT INTO table3(fullname ) SELECT concat( table1.name,'-',table2.name ) FROM table1 CROSS JOIN table2;
答案 1 :(得分:0)
如果你将第三个表的id设置为自动增量,那么这样的东西可能有效。
但是,我对mySQL的方言并不熟悉,所以这可能是也可能不对
INSERT INTO table3 (fullname)
VALUES(
SELECT table1.id,
concat( table1.name,'-',table2.name)
FROM table1
CROSS JOIN table2
)
答案 2 :(得分:-1)
如果你想从不同的表中检索数据并在php中使用它,你可以使用这样的查询。 您应该在每个表中为列添加不同的名称,这总是有用的。
$query = "SELECT
table1.*,
table2.*
FROM
table1, table2
WHERE
table1.id=table2.id
";
$ row_query = mysql_fetch_assoc($ query);