mysql - SQL通过从同一个表中选择插入多个值和父ID
问题描述
如何通过从同一个表中选择来插入多个值和父 ID
我在下面尝试并收到错误
INSERT IGNORE INTO ctg_tbl (`ctg_name`,`ctg_img`,`ctg_parent_id`)
VALUES
('Gravy', 'GravyImg', (SELECT id FROM ctg_tbl WHERE ctg_name='Foods')),
('Curry', 'CurryImg', (SELECT id FROM ctg_tbl WHERE ctg_name='Foods')),
('Ball', 'BallImg', (SELECT id FROM ctg_tbl WHERE ctg_name='Games'))
MySQL 说:文档 #1093 - 表 'ctg_tbl' 被指定了两次,既作为 'INSERT' 的目标,又作为数据的单独源
解决方案
只需将查询转换为INSERT INTO ... SELECT
:
INSERT IGNORE INTO ctg_tbl (ctg_name, ctg_img, ctg_parent_id)
SELECT 'Gravy', 'GravyImg', id FROM ctg_tbl WHERE ctg_name = 'Foods'
UNION ALL
SELECT 'Curry', 'CurryImg', id FROM ctg_tbl WHERE ctg_name = 'Foods'
UNION ALL
SELECT 'Ball', 'BallImg', id FROM ctg_tbl WHERE ctg_name = 'Games';
推荐阅读
- javascript - Javascript从字符串数组转换后将对象设置为空
- php - wc_order_query 与 meta_query 在使用关系时不起作用
- unity3d - 让敌人跟随并随机射击带有标签的多个游戏对象
- ruby-on-rails - Nginx 和 rails:渲染子域的特定路径
- c - 使用 GLUT 优化四边形的再现?
- excel - 有没有办法通过excel中的特定文件夹超链接一堆文件?
- amazon-web-services - DMS - 复制任务完成时收到通知
- amazon-web-services - 我可以为 helm 子图表设置多个 values.yaml(具有不同的名称)吗?
- python - python:根据条件拆分字符串列表
- iis - 413 错误:有效负载过大 - IIS - Windows Server 2016