mysql - 从用户输入的两个表中插入select

时间:2016-04-03 20:36:41

标签: mysql select jdbc insert user-input

我有两张桌子:

  • 包含属性的客户表:firstName, lastName, address, email, password
  • 包含属性id, firstName, lastName
  • 的信用卡表

目标是我需要将客户插入到客户表中,只有他/她存在于信用卡表中。所有信息都来自用户的输入。

这是我尝试做的事情:

    IF EXISTS 
    (SELECT first_name, last_name 
    FROM creditcards 
    WHERE creditcards.first_name = ? 
    AND creditcards.last_name = ?
    )
    BEGIN 
    INSERT INTO customers(first_name, last_name, address,email,password)VALUES (?,?,?,?,?)
    END

我也为七个“?”做了setString。但它抱怨此声明中存在语法错误。

1 个答案:

答案 0 :(得分:0)

您不能在MySQL中的函数之外使用IF控制块。这就是你的语法错误背后的原因。构建查询的方法是SELECT内的INSERT,如下所示:

    INSERT INTO customers (`first_name`,`last_name`,`address`,`email`,`password`)
    SELECT first_name, last_name, address, email, password
    FROM (SELECT ? as first_name, ? as last_name, ? as address, ? as email, ? as password) a
    WHERE EXISTS (SELECT 1 FROM creditcards b WHERE a.first_name = b.first_name AND a.last_name=b.last_name);