我有三张桌子的连接问题。我有以下表格:
Wishlists (id, user_id, itinerary_id)
Itineraries (id, name, image_id)
Images (id, name)从wishlist表开始,我将返回分配给日程的图像。我该怎么做?
String sql = "SELECT w.*, it.*, img.* "
+ "FROM wishlists w "
+ "INNER JOIN itineraries it ON wishlists.itinerary_id = itineraries.itinerary_id "
+ "INNER JOIN images img ON itineraries.image_id = images.image_id"
+ "WHERE user_id = ?";发布于 2018-06-17 14:08:14
您应该在这里使用准备好的语句:
String sql = "SELECT img.name FROM wishlists w ";
sql += "INNER JOIN itineraries it ON w.itinerary_id = it.id ";
sql += "INNER JOIN images img ON it.image_id = img.id ";
sql += "WHERE w.user_id = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, 100); // for user_id = 100, for example
ResultSet rs = ps.executeQuery();
while (rs.next()) {
String imageName = rs.getString("name");
System.out.println("Found an image: " + imageName);
}发布于 2018-06-17 14:02:11
您可能需要一个如下所示的查询:
SELECT . . . -- explicitly list the columns
FROM wishlists w INNER JOIN
itineraries it
ON w.itinerary_id = i.itinerary_id INNER JOIN
images img
ON it.image_id = img.image_id
WHERE <what table ???>.user_id = ?;备注:
user_id的表。*是一个特别糟糕的主意。where之前的一个空格;这可能只是一个错误。https://stackoverflow.com/questions/50897353
复制相似问题