带左连接的准备语句

时间:2014-10-23 15:03:23

标签: java prepared-statement left-join

我不确定是否可行,但我想为prepared-statement创建一个insert查询,其中insert查询包含两个表之间的连接。

E.g。 (也许是一个愚蠢的例子)

String sql = "INSERT INTO TABLE_A A (" + 
             "GenderId, Name, Surname, Age) VALUES (B.GenderId, ?, ?, ?) " + 
             "LEFT JOIN TABLE_B B ON A.GenderId = B.GenderId " + 
             "WHERE B.Gender = 'Male'";

PreparedStatement statement = conn.prepareStatement(sql);
statement.setString(1, "Bill");
statement.setString(2, "Gates");
statement.setInt(3, 50);

1 个答案:

答案 0 :(得分:1)

如果我理解您要实现的目标,可以使用SELECT语句生成要插入的值。

INSERT INTO TABLE_A (GenderId, Name, Surname, Age)
SELECT b.GenderId, ?, ?, ? FROM TABLE_B B
WHERE b.Gender = 'Male'

有关于这个主题here

的一些基本阅读