Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如果初始表中不存在uid,则从另一个表插入到表中_Mysql_Sql_Sql Insert_Insert Into - Fatal编程技术网

Mysql 如果初始表中不存在uid,则从另一个表插入到表中

Mysql 如果初始表中不存在uid,则从另一个表插入到表中,mysql,sql,sql-insert,insert-into,Mysql,Sql,Sql Insert,Insert Into,我很抱歉,如果这可能是一个重复,但我已经在StackOverflow上搜索了一段时间,无法看到任何完全符合我要做的查询 基本上,我有一个用户数据库,我最近为用户创建了选项,但只针对级别为1的用户 现在我想改变这一点,让每个人都有选择,不管他们的水平如何 我正在查看数据库中当前的所有用户,如果在uid=id关系的用户的urights中找不到任何选项,则使用用户表中的用户id插入选项 我已经玩了一段时间的注射,但我似乎无法让它工作 我最近使用的3个查询是: insert into urights

我很抱歉,如果这可能是一个重复,但我已经在StackOverflow上搜索了一段时间,无法看到任何完全符合我要做的查询

基本上,我有一个用户数据库,我最近为用户创建了选项,但只针对级别为1的用户

现在我想改变这一点,让每个人都有选择,不管他们的水平如何

我正在查看数据库中当前的所有用户,如果在uid=id关系的用户的urights中找不到任何选项,则使用用户表中的用户id插入选项

我已经玩了一段时间的注射,但我似乎无法让它工作

我最近使用的3个查询是:

insert into urights ('', u.id, 1, 1, 0) (SELECT u.id FROM usr u WHERE (SELECT ur.id FROM urights ur WHERE ur.uid != u.id) )

SELECT id FROM usr u (INSERT INTO urights (id, uid, quotes, pos, nmode) VALUES ('', u.id, 1, 1, 0) WHERE uid NOT IN (u.id))

INSERT INTO urights (id, uid, quotes, pos, nmode) VALUES ('', a.id, 1, 1, 0) SELECT a.id FROM usr a WHERE NOT EXISTS (SELECT ur.uid FROM urights ur WHERE AS ur.uid = a.id)

任何关于我做错了什么的指点和纠正错误的指导都是非常值得赞赏的:)

更新的答案,这样您在设置同一语句中的其他值时仍然可以迭代不存在的用户id

INSERT urights (uid, quotes, pos, nmode) 
SELECT DISTINCT u.usernumber, 1, 1, 0
FROM usr u
WHERE
NOT EXISTS (SELECT uid FROM urights ur
          WHERE ur.uid = u.usernumber);

我认为你可以大大简化这个问题。从一个只包含两列的表开始。您好@likwidfire2K,感谢您花时间提供帮助。问题是它正在更改urights数据库中已有的所有现有用户的权限。@Robert好的,因此,对于每个已经存在的用户,引号、pos和nmode当前是不同的,但是对于所有添加的新用户,它将被设置为相同的数字,对吗?非常感谢,你做这件事的方式很简单。我想我是想把sql代码复杂化了。