我有一个名为UserGroups的表,其中包含" USER_ID
"这是" User Table
"中的主键。和" GROUP_ID
"这是" Group Table
"中的主键。
___________________
|User_ID | Group_ID|
但是,我的查询是尝试将用户(ID为#34; 1")放入用户尚未进入的所有组中。规则是不使用" IN& #34;或者"存在"子句。
我尝试了一个插入语句,但我想不管怎样插入而不使用" IN"或" EXISTS"子句。
INSERT into UserGroups
VALUES(1,*)
答案 0 :(得分:2)
SQL Server的解决方案
INSERT INTO UserGroups (UserID, GroupID)
SELECT 1, GroupID
FROM Groups
EXCEPT
SELECT UserID, GroupID
FROM UserGroups
我认为对于Oracle
INSERT INTO UserGroups (UserID, GroupID)
SELECT 1, GroupID
FROM Groups
MINUS
SELECT UserID, GroupID
FROM UserGroups
和MySQL
INSERT INTO UserGroups (UserID, GroupID)
SELECT 1, GroupID
FROM Groups
WHERE GroupID NOT IN (SELECT GroupID FROM UserGroups WHERE UserID = 1)
没有IN
INSERT INTO UserGroups (UserID, GroupID)
SELECT 1, GroupID
FROM Groups
LEFT JOIN UserGroups
ON UserGroups.GroupID = Groups.GroupID
AND UserGroups.UserID = 1
WHERE UserGroup.GroupID IS NULL