2012-02-24 105 views
-1

我想知道試圖將用戶添加到集合的管理員實際上已經創建了該用戶。 解釋變量:Mysql - 在插入另一個表之前檢查表

$用戶ID =用戶ID被添加到一個集合

$ OWNERID =的管理員用戶ID

$ collectionid =的collectionid用戶應該加入。

IF THEN INSERT INTO 'collectionusers' ( 'collectionid', '用戶ID')VALUES($ collectionid,$用戶ID(在(SELECT ID FROM '用戶' WHERE '所有者'= $ OWNERID)$用戶ID) );

如果我執行此它看起來像這樣

IF(8(SELECT ID FROM '用戶' WHERE所有者= 1))THEN INSERT INTO 'collectionusers' ( 'collectionid',' userid')VALUES(3,8);

我已經看過上:

12.6.5.2. IF Syntax

11.3.2. Comparison Functions and Operators - IN()

我想不出有什麼不對的語法。

+2

在單個SQL語句中完成所有工作非常重要嗎? – 2012-02-24 10:15:37

+0

不是。這是爲了更清晰的代碼。 – Nic 2012-02-24 11:01:57

+0

清潔劑是什麼?非明顯目的的查詢比兩個單獨的簡單操作更清潔? – 2012-02-24 11:12:22

回答

2

您可以使用一個查詢來完成。例如:

INSERT INTO collectionusers(collectionid, userid) 
    SELECT 3, 8 FROM users WHERE owner = 1 AND id = 8 LIMIT 1 

此外,您可以編寫存儲過程。

相關問題