2017-05-31 43 views
0

我想只在数据不存在时插入数据。继承人我怎么办:我的查询是否正确?存在或不存在可以检查我的查询的网站?

IF NOT EXISTS (SELECT Nom, IDSociete FROM stagiaire, societe WHERE Nom = 'Paul' AND IDSociete = (SELECT ID from soceite where NomSoc='Promoplantes')) 
      BEGIN 
      INSERT INTO stagiaire(Nom, Email, Telephone, IDSociete, Pseudo, Password) 
      VALUES('Paul', '[email protected]', 
      '000000000', '2' 
      , 'paulPseudo', 'paulPassword') 
      END 

而且它不会工作。 我: 保罗谁的Promoplantes 工作,我想: 保罗谁的KebabHouse 工作(这是一个例子) 我的查询只看到已经有一个保罗所以它不插入。但他们不同于保罗的! 你知道我的失败在哪里吗?

另外,你知道任何网站,可以检查我的查询语法在未来吗?

+1

你有'SELCT'不'SELECT' – Tom

+0

是的,我看到的和纠正。我忘了在这里改变它。 – TheTinyCat

+0

你确定你的餐桌名称是否正确吗? – Tom

回答

0

给这一去。它应该消除需要通过一个连接(更有效)替换它使用子查询

IF NOT EXISTS (
    SELECT 
     * 
    FROM stagiaire stg 
    LEFT JOIN societe sct 
    ON stg.IDSociete = sct.ID 
    WHERE Nom = 'Paul' 
    AND NomSoc = 'Promoplantes' 
) 
BEGIN 
    INSERT INTO stagiarie (Nom, Email, Telephone, IDScoiete, Pseudo, Password) 
    VALUES ('Paul', '[email protected]', '000000000', '2', 'paulPseudo', 'paulPassword') 
END 
+0

是伟大的,但仍然没有工作抱歉 – TheTinyCat

+0

它为什么不工作。它回来了什么? – Tom

+0

插入不起作用。它没有插入任何东西。 – TheTinyCat

相关问题