我的查询是否正确?是否存在可以查询我的查询的网站?

时间:2017-05-31 13:10:03

标签: mysql

我想仅在数据不存在的情况下插入数据。继承人我是怎么做的:

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', 'paul@mail.com', 
            '000000000', '2'
            , 'paulPseudo', 'paulPassword')
            END

它不会起作用。 我有 : 保罗为Promoplantes工作 我想要 : 保罗为KebabHouse工作 (这是一个例子) 我的查询只是看到已经有一个保罗所以它没有插入它。但他们是不同的保罗! 你知道我失败的地方吗?

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

1 个答案:

答案 0 :(得分: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', 'paul@mail.com', '000000000', '2', 'paulPseudo', 'paulPassword')
END