在mysql语句中插入并选择多个值

在mysql语句中插入并选择多个值,mysql,Mysql,我无法获得正确的mysql语法。 我想在表中插入两条数据,post\u id和meta\u value,它们来自同一数据库和今天日期的另一个表CURDATE() (post\u id,number\u vows,todays\u date) 以下是: SELECT `post_id` FROM `wp_postmeta` WHERE `meta_key` = 'votes' ORDER BY `meta_value` DESC LIMIT 10 SELECT `meta_val

我无法获得正确的mysql语法。 我想在表中插入两条数据,
post\u id
meta\u value
,它们来自同一数据库和今天日期的另一个表CURDATE()

post\u id
number\u vows
todays\u date

以下是:

SELECT `post_id`  
FROM  `wp_postmeta` WHERE  `meta_key` =  'votes' ORDER BY  `meta_value` DESC   
LIMIT 10
SELECT `meta_value`  
FROM  `wp_postmeta` WHERE  `meta_key` =  'votes' ORDER BY  `meta_value` DESC   
LIMIT 10
CURDATE()) 
如何将上述内容合并为一个陈述?我试过了

INSERT into wp_top_voted  
(`post_id`, `number_votes`, `todays_date`)  
values (SELECT `post_id`  
FROM  `wp_postmeta` WHERE  `meta_key` =  'votes' ORDER BY  `meta_value` DESC   
LIMIT 10, SELECT `meta_value`  
FROM  `wp_postmeta` WHERE  `meta_key` =  'votes' ORDER BY  `meta_value` DESC   
LIMIT 10,   CURDATE()) 

但我有错误

你可以在这里找到一个很好的解释

您需要一个INSERT INTO SELECT语句

INSERT INTO Customers (CustomerName, Country)
SELECT SupplierName, Country FROM Suppliers;
您的具体案例应该是:

INSERT into wp_top_voted ('post_id','meta_value','todays_date' ) SELECT 'post_id' ,'meta_value' ,CURDATE()
FROM  'wp_postmeta' WHERE  'meta_key' =  'votes' ORDER BY 'meta_value' DESC   
LIMIT 10

由于
INSERT INTO TABLE()SELECT的格式不正确,导致出现错误。
试试这个:

INSERT into wp_top_voted  
(`post_id`, `number_votes`, `todays_date`)  
SELECT `post_id`, `meta_value`, CURDATE() 
FROM  `wp_postmeta` WHERE  `meta_key` =  'votes' ORDER BY  `meta_value` DESC   
LIMIT 10;

您可以添加示例数据和预期结果吗?请尝试加入源表除了我建议的解决方案之外,您还可以检查“您使用的字符,在我看来,当您将多行插入表值时,括号内语句的一部分也需要用括号分隔,插入(colum1,colum2)值((val1,val2,val3),(val4,val5,val6)等。。。在您的示例中,您使用类似SELECT语句的值((SELECT语句1),(SELECT语句2)),而不是val1、val2、val3。。
INSERT into wp_top_voted  
(`post_id`, `number_votes`, `todays_date`)  
SELECT `post_id`, `meta_value`, CURDATE() 
FROM  `wp_postmeta` WHERE  `meta_key` =  'votes' ORDER BY  `meta_value` DESC   
LIMIT 10;