Insert Into table如果另一个现有表(不是外键)中存在类似的值

时间:2014-04-08 02:57:10

标签: mysql sql database insert exists

我试图插入"项目顺序"在一个名为AsksFor的表中,我想确保Item和ItemManufacturer存在于表Sells中。但是我一直得到"语法错误,如果出现意外END_OF_INPUT或&#39 ;;'"使用IF。有人知道为MySQL写这个的其他方法吗?

INSERT INTO AsksFor (Username, ItemName, ItemManufacturer)
VALUES ('Harish', 'zkoxtlv93', 'tbzrt93')
IF EXISTS(SELECT ItemName, ItemManufacturer
        FROM Sells
        WHERE Sells.ItemName = VALUES(ItemName)
        AND Sells.ItemManufacturer = VALUES(ItemManufacturer));

1 个答案:

答案 0 :(得分:2)

MySQL不提供EXISTS子句。无论如何你不需要它,WHERE子句中的AND条件执行检查部分源表Sells中是否存在值。

试试这个

INSERT INTO AsksFor (Username, ItemName, ItemManufacturer)
SELECT DISTINCT 'Harish',ItemName, ItemManufacturer
        FROM Sells
        WHERE ItemName='zkoxtlv93' AND ItemManufacturer='tbzrt93'