MYSQL:使用来自两个子查询的数据创建插入
我知道在从数据库中选择行之后,可以使用子查询进行插入MYSQL:使用来自两个子查询的数据创建插入,mysql,sql,Mysql,Sql,我知道在从数据库中选择行之后,可以使用子查询进行插入 INSERT INTO wp_43_term_relationships (object_id, term_taxonomy_id, term_order) SELECT ID, 8363, 0 FROM ( SELECT DISTINCT wp_43_posts.ID FROM wp_43_posts INNER JOIN wp_43_term_relationships ON wp_43_term_relationships.object
INSERT INTO wp_43_term_relationships (object_id, term_taxonomy_id, term_order)
SELECT ID, 8363, 0 FROM
( SELECT DISTINCT
wp_43_posts.ID
FROM
wp_43_posts
INNER JOIN wp_43_term_relationships ON wp_43_term_relationships.object_id = wp_43_posts.ID
INNER JOIN wp_43_term_taxonomy ON wp_43_term_taxonomy.term_taxonomy_id = wp_43_term_relationships.term_taxonomy_id
WHERE (wp_43_term_taxonomy.term_id = 4613 OR wp_43_term_taxonomy.term_id = 4615) AND wp_43_term_taxonomy.term_id != 8363 ) posts
但是,如果我不需要硬编码8363,而是需要从另一个查询派生它呢?例如,我需要从
SELECT
wp_43_term_taxonomy.term_taxonomy_id
FROM
wp_43_term_taxonomy
WHERE
wp_43_term_taxonomy.term_id = 8363
只需将其放入子查询并使用额外的联接:
INSERT INTO wp_43_term_relationships (object_id, term_taxonomy_id, term_order)
SELECT ID, someval, 0 FROM
( SELECT DISTINCT
wp_43_posts.ID,t.term_taxonomy_id someval
FROM
wp_43_posts
INNER JOIN wp_43_term_relationships ON wp_43_term_relationships.object_id = wp_43_posts.ID
INNER JOIN wp_43_term_taxonomy ON wp_43_term_taxonomy.term_taxonomy_id = wp_43_term_relationships.term_taxonomy_id
WHERE (wp_43_term_taxonomy.term_id = 4613 OR wp_43_term_taxonomy.term_id = 4615) AND wp_43_term_taxonomy.term_id != 8363
join wp_43_term_taxonomy t on t.term_id = 8363 ) posts
只需将其放入子查询并使用额外的联接:
INSERT INTO wp_43_term_relationships (object_id, term_taxonomy_id, term_order)
SELECT ID, someval, 0 FROM
( SELECT DISTINCT
wp_43_posts.ID,t.term_taxonomy_id someval
FROM
wp_43_posts
INNER JOIN wp_43_term_relationships ON wp_43_term_relationships.object_id = wp_43_posts.ID
INNER JOIN wp_43_term_taxonomy ON wp_43_term_taxonomy.term_taxonomy_id = wp_43_term_relationships.term_taxonomy_id
WHERE (wp_43_term_taxonomy.term_id = 4613 OR wp_43_term_taxonomy.term_id = 4615) AND wp_43_term_taxonomy.term_id != 8363
join wp_43_term_taxonomy t on t.term_id = 8363 ) posts
只需将其放入子查询并使用额外的联接:
INSERT INTO wp_43_term_relationships (object_id, term_taxonomy_id, term_order)
SELECT ID, someval, 0 FROM
( SELECT DISTINCT
wp_43_posts.ID,t.term_taxonomy_id someval
FROM
wp_43_posts
INNER JOIN wp_43_term_relationships ON wp_43_term_relationships.object_id = wp_43_posts.ID
INNER JOIN wp_43_term_taxonomy ON wp_43_term_taxonomy.term_taxonomy_id = wp_43_term_relationships.term_taxonomy_id
WHERE (wp_43_term_taxonomy.term_id = 4613 OR wp_43_term_taxonomy.term_id = 4615) AND wp_43_term_taxonomy.term_id != 8363
join wp_43_term_taxonomy t on t.term_id = 8363 ) posts
只需将其放入子查询并使用额外的联接:
INSERT INTO wp_43_term_relationships (object_id, term_taxonomy_id, term_order)
SELECT ID, someval, 0 FROM
( SELECT DISTINCT
wp_43_posts.ID,t.term_taxonomy_id someval
FROM
wp_43_posts
INNER JOIN wp_43_term_relationships ON wp_43_term_relationships.object_id = wp_43_posts.ID
INNER JOIN wp_43_term_taxonomy ON wp_43_term_taxonomy.term_taxonomy_id = wp_43_term_relationships.term_taxonomy_id
WHERE (wp_43_term_taxonomy.term_id = 4613 OR wp_43_term_taxonomy.term_id = 4615) AND wp_43_term_taxonomy.term_id != 8363
join wp_43_term_taxonomy t on t.term_id = 8363 ) posts
是的,您可以,请参见下面的修改后的查询。基本上,将该列包含到要为
INSERT
语句生成的子查询select子句中。此外,您当然不需要该条件和wp_43_term_taxonomy.term_id!=8363
INSERT INTO wp_43_term_relationships (object_id, term_taxonomy_id, term_order)
SELECT ID, term_id, 0
FROM
(SELECT DISTINCT
wp_43_posts.ID,
wp_43_term_taxonomy.term_id
FROM wp_43_posts
INNER JOIN wp_43_term_relationships
ON wp_43_term_relationships.object_id = wp_43_posts.ID
INNER JOIN wp_43_term_taxonomy
ON wp_43_term_taxonomy.term_taxonomy_id = wp_43_term_relationships.term_taxonomy_id
WHERE wp_43_term_taxonomy.term_id IN(4613, 4615) posts
是的,您可以,请参见下面的修改后的查询。基本上,将该列包含到要为
INSERT
语句生成的子查询select子句中。此外,您当然不需要该条件和wp_43_term_taxonomy.term_id!=8363
INSERT INTO wp_43_term_relationships (object_id, term_taxonomy_id, term_order)
SELECT ID, term_id, 0
FROM
(SELECT DISTINCT
wp_43_posts.ID,
wp_43_term_taxonomy.term_id
FROM wp_43_posts
INNER JOIN wp_43_term_relationships
ON wp_43_term_relationships.object_id = wp_43_posts.ID
INNER JOIN wp_43_term_taxonomy
ON wp_43_term_taxonomy.term_taxonomy_id = wp_43_term_relationships.term_taxonomy_id
WHERE wp_43_term_taxonomy.term_id IN(4613, 4615) posts
是的,您可以,请参见下面的修改后的查询。基本上,将该列包含到要为
INSERT
语句生成的子查询select子句中。此外,您当然不需要该条件和wp_43_term_taxonomy.term_id!=8363
INSERT INTO wp_43_term_relationships (object_id, term_taxonomy_id, term_order)
SELECT ID, term_id, 0
FROM
(SELECT DISTINCT
wp_43_posts.ID,
wp_43_term_taxonomy.term_id
FROM wp_43_posts
INNER JOIN wp_43_term_relationships
ON wp_43_term_relationships.object_id = wp_43_posts.ID
INNER JOIN wp_43_term_taxonomy
ON wp_43_term_taxonomy.term_taxonomy_id = wp_43_term_relationships.term_taxonomy_id
WHERE wp_43_term_taxonomy.term_id IN(4613, 4615) posts
是的,您可以,请参见下面的修改后的查询。基本上,将该列包含到要为
INSERT
语句生成的子查询select子句中。此外,您当然不需要该条件和wp_43_term_taxonomy.term_id!=8363
INSERT INTO wp_43_term_relationships (object_id, term_taxonomy_id, term_order)
SELECT ID, term_id, 0
FROM
(SELECT DISTINCT
wp_43_posts.ID,
wp_43_term_taxonomy.term_id
FROM wp_43_posts
INNER JOIN wp_43_term_relationships
ON wp_43_term_relationships.object_id = wp_43_posts.ID
INNER JOIN wp_43_term_taxonomy
ON wp_43_term_taxonomy.term_taxonomy_id = wp_43_term_relationships.term_taxonomy_id
WHERE wp_43_term_taxonomy.term_id IN(4613, 4615) posts
如果用()中的第二个查询替换常量,它应该可以工作。 像这样:
INSERT INTO wp_43_term_relationships (object_id, term_taxonomy_id,term_order)
SELECT ID,
(SELECT wp_43_term_taxonomy.term_taxonomy_id FROM wp_43_term_taxonomy WHERE wp_43_term_taxonomy.term_id = 8363),
0 FROM
... remaining of the original ...
至少如果您只需要1个值,否则最好将这个额外的表连接到其他表。如果您用()中的第二个查询替换常量,它应该可以工作。 像这样:
INSERT INTO wp_43_term_relationships (object_id, term_taxonomy_id,term_order)
SELECT ID,
(SELECT wp_43_term_taxonomy.term_taxonomy_id FROM wp_43_term_taxonomy WHERE wp_43_term_taxonomy.term_id = 8363),
0 FROM
... remaining of the original ...
至少如果您只需要1个值,否则最好将这个额外的表连接到其他表。如果您用()中的第二个查询替换常量,它应该可以工作。 像这样:
INSERT INTO wp_43_term_relationships (object_id, term_taxonomy_id,term_order)
SELECT ID,
(SELECT wp_43_term_taxonomy.term_taxonomy_id FROM wp_43_term_taxonomy WHERE wp_43_term_taxonomy.term_id = 8363),
0 FROM
... remaining of the original ...
至少如果您只需要1个值,否则最好将这个额外的表连接到其他表。如果您用()中的第二个查询替换常量,它应该可以工作。 像这样:
INSERT INTO wp_43_term_relationships (object_id, term_taxonomy_id,term_order)
SELECT ID,
(SELECT wp_43_term_taxonomy.term_taxonomy_id FROM wp_43_term_taxonomy WHERE wp_43_term_taxonomy.term_id = 8363),
0 FROM
... remaining of the original ...
至少如果您只需要1个值,否则最好将这个额外的表连接到其他表。这里似乎有几个硬编码的值;也许是时候考虑生成一个包含一个简单脚本的插入查询的.sql文件(无论是您首选的语言PHP、Python等),都允许在将值绑定到查询之前将其检索为变量,准备标识符数组以在循环中使用…@FrostyZ创建一个wp-cli命令需要2分钟,你是对的,但是我必须使用mysql,因为有时候它更容易。我很好奇。我可以简单地运行另一个查询并对值进行硬编码,但我想知道如何做到这一点!看起来这里有几个硬编码的值;也许是时候考虑生成一个包含一个简单脚本的插入查询的.sql文件(无论是您首选的语言PHP、Python等),都允许在将值绑定到查询之前将其检索为变量,准备标识符数组以在循环中使用…@FrostyZ创建一个wp-cli命令需要2分钟,你是对的,但是我必须使用mysql,因为有时候它更容易。我很好奇。我可以简单地运行另一个查询并对值进行硬编码,但我想知道如何做到这一点!看起来这里有几个硬编码的值;也许是时候考虑生成一个包含一个简单脚本的插入查询的.sql文件(无论是您首选的语言PHP、Python等),都允许在将值绑定到查询之前将其检索为变量,准备标识符数组以在循环中使用…@FrostyZ创建一个wp-cli命令需要2分钟,你是对的,但是我必须使用mysql,因为有时候它更容易。我很好奇。我可以简单地运行另一个查询并对值进行硬编码,但我想知道如何做到这一点!看起来这里有几个硬编码的值;也许是时候考虑生成一个包含一个简单脚本的插入查询的.sql文件(无论是您首选的语言PHP、Python等),都允许在将值绑定到查询之前将其检索为变量,准备标识符数组以在循环中使用…@FrostyZ创建一个wp-cli命令需要2分钟,你是对的,但是我必须使用mysql,因为有时候它更容易。我很好奇。我可以简单地运行另一个查询并对值进行硬编码,但我想知道如何做到这一点!