2012-02-24 2 views
-1

Я хочу знать, что администратор, пытающийся добавить пользователя в коллекцию, действительно создал этого пользователя. Объяснение переменных:Mysql - проверить таблицу перед вставкой в ​​другую таблицу

$ = Идентификатор_пользователя идентификатор пользователя должен быть добавлен в коллекцию

$ OwnerId = админы идентификатору пользователя

$ CollectionID = CollectionID пользователь должен быть добавлен.

IF ($ Идентификатор_пользователя в (SELECT ID FROM 'пользователей WHERE 'владельца'= $ OwnerId)) THEN INSERT INTO 'collectionusers' ('CollectionID', 'идента') VALUES ($ CollectionID, $ USERID);

Если я выполнить это выглядит следующим образом

IF (8 в (SELECT ID FROM 'пользователи', где владелец = 1)) THEN INSERT INTO 'collectionusers' ('CollectionID', ' userid ') ЗНАЧЕНИЯ (3, 8);

Я посмотрел на:

12.6.5.2. IF Syntax

11.3.2. Comparison Functions and Operators - IN()

Я не могу понять, что случилось с этим синтаксисом.

+2

Нужно ли выполнять всю работу в рамках одного оператора SQL? –

+0

Не совсем. Это для чистого кода. – Nic

+0

Чище что? Запрос неочевидной цели чище, чем просто два отдельных простых действия? –

ответ

2

Вы можете сделать это, используя один запрос. Например:

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

Также вы можете написать хранимую процедуру.

Смежные вопросы