我在mysql数据库中有一个问题。
我想在从多个表中选择的表中插入一些数据。
这是我的查询
INSERT INTO dapot_dummy ('site_id','rnc_id','wbts_id','ip3g','vlan','status_vlan')
VALUES (
(SELECT id FROM site WHERE id_site = 'TIM001')
,(SELECT id from rnc where rnc_name = 'RNC Timika-1')
,'117','10.250.46.85','3339',
(SELECT id from status_vlan where status_vlan = 'Metro E'))
我在上一个问题link中引用的
这是输出
在分析过程中发现4个错误。
预期逗号或右括号(位置“ SELECT”附近 100)意外令牌。 (在位置107的“ id”附近) 先前已解析。 (在位置163处的“从”附近) 语句类型。 (在位置163处的“从”附近)查询SQL:Dokumentasi
插入INTO dapot_dummy ('site_id','rnc_id','wbts_id','ip3g','vlan','status_vlan')VALUES( (从站点WHERE id_site ='TIM001'的选择ID),(从rnc选择的ID 其中rnc_name ='RNC Timika-1'),'117','10.250.46.85','3339',(SELECT 来自status_vlan的ID,其中status_vlan ='Metro E'))
MySQL menyatakan:Dokumentasi
1064-您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册以使用正确的语法
“ site_id”,“ rnc_id”,“ wbts_id”,“ ip3g”,“ vlan”,“ status_vlan”附近) 值( (SELEC'位于第1行
如何解决?请帮助
答案 0 :(得分:0)
即使子查询也必须具有有效的语法:
INSERT INTO dapot_dummy ('site_id','rnc_id','wbts_id','ip3g','vlan','status_vlan')
VALUES (
(SELECT 'TIM001' FROM site WHERE id_site = 'TIM001')
,(SELECT 'RNC Timika-1' from rnc where rnc_name = 'RNC Timika-1')
,'117','10.250.46.85','3339',
(SELECT 'Metro E' from status_vlan where status_vlan = 'Metro E'))
希望我能正确击中桌子...
对数据库中的每个子查询进行基本测试,以确保它是有效的,并且可以获取所需的数据,然后组成广泛的完整查询。
答案 1 :(得分:0)
对于标记列名称,应使用“`”反引号代替引号:
INSERT INTO dapot_dummy (`site_id`,`rnc_id`,`wbts_id`,`ip3g`,`vlan`,`status_vlan`)
VALUES (
(SELECT id FROM site WHERE id_site = 'TIM001')
,(SELECT id FROM rnc WHERE rnc_name = 'RNC Timika-1')
,'117','10.250.46.85','3339',
(SELECT id FROM status_vlan WHERE status_vlan = 'Metro E'))
我还建议将LIMIT 1
添加到子查询