如果初始 table 中不存在,则从另一个 table 插入 table uid
Insert into table uid from another table if it is not present in initial table
如果这可能是重复的,我很抱歉,但我已经在 Whosebug 上搜索了一段时间,但看不到任何完全符合我要执行的查询的内容。
基本上,我有一个用户数据库,我最近为用户创建了选项,但仅限于级别 1 的用户。
现在我想改变这一点,为每个人提供选择,无论他们的水平如何。
我正在查看当前在数据库中的所有用户,如果在该用户的 urights 中没有找到具有 uid=id 关系的选项,则使用用户的用户 ID 插入选项 table.
我已经尝试了一段时间的注射,但我似乎无法让它发挥作用。
Here is a sqlfiddle I have created
我最近使用的 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);
如果这可能是重复的,我很抱歉,但我已经在 Whosebug 上搜索了一段时间,但看不到任何完全符合我要执行的查询的内容。
基本上,我有一个用户数据库,我最近为用户创建了选项,但仅限于级别 1 的用户。
现在我想改变这一点,为每个人提供选择,无论他们的水平如何。
我正在查看当前在数据库中的所有用户,如果在该用户的 urights 中没有找到具有 uid=id 关系的选项,则使用用户的用户 ID 插入选项 table.
我已经尝试了一段时间的注射,但我似乎无法让它发挥作用。
Here is a sqlfiddle I have created
我最近使用的 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);