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($查询);