2014-07-09 84 views
-4

我有一個表稱爲羣組它由「USER_ID」,這是在「User Table」主鍵和「GROUP_ID」,這是在「Group Table插入無「IN」或「EXISTS」

主鍵
___________________ 
|User_ID | Group_ID| 
  • 用戶可以屬於多個組

然而,我的查詢,試圖把一個用戶(ID爲「1」)到用戶是不是已經在所有組。規則是不要使用「IN」或「Exists」條款。

我試着做一個插入語句,但我無法想象插入而不使用「IN」或「EXISTS」子句。

INSERT into UserGroups 
VALUES(1,*) 
+5

「mysql」,「sql-server」和「plsql」都是供應商特定且互斥的。你實際使用哪個數據庫? – Allan

+0

mysql是我正在使用的數據庫。我道歉@阿蘭 – user3630237

回答

2

用於SQL Server解決方案

INSERT INTO UserGroups (UserID, GroupID) 
SELECT 1, GroupID 
FROM Groups 
EXCEPT 
SELECT UserID, GroupID 
FROM UserGroups 

我認爲甲骨文

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