Mysql две таблицы смешанных данных

У меня есть две таблицы:

Таблица 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']]);
}
}

Так, как я могу создать запрос, который смешивает данные?

Thans

0

Решение

Используйте ниже SQL для вставки данных в table3

  INSERT INTO table3(fullname ) SELECT concat( table1.name,'-',table2.name ) FROM table1 CROSS JOIN table2;
0

Другие решения

Нечто подобное может сработать, если вы установите идентификатор третьей таблицы в автоинкремент.

Тем не менее, я не очень знаком с диалектом MySQL, так что это может или не может быть правильным

INSERT INTO table3 (fullname)
VALUES(
SELECT table1.id,
concat( table1.name,'-',table2.name)
FROM table1
CROSS JOIN table2
)
0

Если вы хотите просто получить данные из разных таблиц и использовать их в php, вы можете использовать такой запрос.
Вы должны давать своим столбцам разные имена в каждой таблице, это всегда полезно.

$query = "SELECT
table1.*,
table2.*
FROM
table1, table2
WHERE
table1.id=table2.id
";

$ row_query = mysql_fetch_assoc ($ query);

-1
По вопросам рекламы [email protected]