2016-04-03 39 views
1

两个表中选择我有两个表:MySQL的 - 插入来自用户的输入

  • 客户列表中的属性: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。但它抱怨在这个声明中有语法错误。

回答

0

您不能在MySQL的函数之外使用IF控制块。这是你语法错误的原因。构建您的查询的方式将是一个SELECTINSERT内,类似如下:

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); 
+0

这是否解决问题了吗? – Sevle