在mysql语句中插入并选择多个值
我无法获得正确的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
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;