Условная вставка с использованием «ГДЕ» из другой таблицы, а не вставленной в - PullRequest
0 голосов
/ 19 июля 2011

Я хочу иметь возможность вставлять в одну таблицу, но только если условие выполняется в другой таблице.

например что-то вроде этого

INSERT INTO table_1 (table_2_id,y,z) VALUES (123,2,3) 

WHERE (
(SELECT COUNT(table_2_id) FROM table_2 WHERE valid=1 and id=123)=1
)

В основном - я хочу вставить в таблицу только в том случае, если соответствующая запись в таблице_2 действительна, в противном случае она должна завершиться неудачей.

есть ли способ сделать это в одном запросе, или мне придется использовать какой-то отдельный php + запрос для проверки вместо этого?

1 Ответ

3 голосов
/ 19 июля 2011

Посмотрите, работает ли это для вас:

INSERT INTO table_1 (table_2_id,y,z) 
SELECT '123','2','3' 
FROM table_2 WHERE valid=1 and id=123
...