MySQL, как вставить в таблицу с SELECT UNION ALL и дополнительные параметры? - PullRequest
0 голосов
/ 27 февраля 2019

Данные на slds состоят из protocol_id (внешний ключ для protocols), tld_id (внешний ключ для tlds) и sld_name.

Мне нужно выбратьзначения первичного ключа от protocols и tlds, затем вставьте оба ключа и оставшиеся sld_name в slds.

Кажется, я не могу структурировать "Google" в правильном месте.Что мне здесь не хватает?

INSERT INTO `slds` (sld_name, protocol_id, tld_id)
"google",
SELECT `id` FROM `protocols`
WHERE `protocol_name`="https"
UNION ALL
SELECT `id` FROM `tlds`
WHERE `tld_name`="com"

Кроме того, если это возможно, как я могу вставить n строк, используя этот метод?

Любой совет приветствуется :)

1 Ответ

0 голосов
/ 27 февраля 2019

UNION ALL присоединяется к рядам.То, что вы хотите, это одно значение:

INSERT INTO slds (sld_name, protocol_id, tld_id)
SELECT
    'google',
    (SELECT id FROM protocols WHERE protocol_name = 'https'),
    (SELECT id FROM tlds WHERE tld_name = 'com');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...