Mysql两表混合数据
Mysql Two tables mixed data
我有两个表:
表 1:
ID| Name
1 | firstname1
2 | firstname2
3 | firstname3
表 2:
ID| Name
1 | lastname1
2 | lastname2
3 | lastname3
我想将 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,我如何创建混合数据的查询?
比
使用下面的SQL在表3中插入数据
INSERT INTO table3(fullname ) SELECT concat( table1.name,'-',table2.name ) FROM table1 CROSS JOIN table2;
如果您将第三个 table id 设置为自动递增,这样的方法可能会起作用。
但是,我对mySQL的方言不太熟悉,所以这可能是对的,也可能不是
INSERT INTO table3 (fullname)
VALUES(
SELECT table1.id,
concat( table1.name,'-',table2.name)
FROM table1
CROSS JOIN table2
)
如果您只想从不同的 table 检索数据并在 php 中使用它,您可以使用这样的查询。
您应该在每个 table 中为您的列指定不同的名称,这总是很有帮助的。
$query = "SELECT
table1.*,
table2.*
FROM
table1, table2
WHERE
table1.id=table2.id
";
$row_query = mysql_fetch_assoc($查询);
我有两个表:
表 1:
ID| Name
1 | firstname1
2 | firstname2
3 | firstname3
表 2:
ID| Name
1 | lastname1
2 | lastname2
3 | lastname3
我想将 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,我如何创建混合数据的查询?
比
使用下面的SQL在表3中插入数据
INSERT INTO table3(fullname ) SELECT concat( table1.name,'-',table2.name ) FROM table1 CROSS JOIN table2;
如果您将第三个 table id 设置为自动递增,这样的方法可能会起作用。
但是,我对mySQL的方言不太熟悉,所以这可能是对的,也可能不是
INSERT INTO table3 (fullname)
VALUES(
SELECT table1.id,
concat( table1.name,'-',table2.name)
FROM table1
CROSS JOIN table2
)
如果您只想从不同的 table 检索数据并在 php 中使用它,您可以使用这样的查询。 您应该在每个 table 中为您的列指定不同的名称,这总是很有帮助的。
$query = "SELECT
table1.*,
table2.*
FROM
table1, table2
WHERE
table1.id=table2.id
";
$row_query = mysql_fetch_assoc($查询);