我正在尝试执行一个简单的查询,其中连接三个表以创建一个表。 我一直想弄清楚为什么我没有得到任何结果。
这是我的疑问:
"SELECT b.band_naam, p.pod_omschr"
+ " FROM bands b"
+ " JOIN bandsperfestival bf ON b.band_id = bf.band_id"
+ " JOIN podia p ON bf.pod_id = p.pod_id"
我正在尝试用Java做这个,因此引用。
这是表格的样子:
带
Bandsperfestival(桥牌桌)
Podia
有人可以发现我的错误吗?
以下是我们要求的更多代码: 这在<%和%>范围内。标签
//ResultSet aanmaken voor alle groepen van op het festival
connectie.voerQueryUit("SELECT b.band_naam, p.pod_omschr"
+ " FROM bands b"
+ " JOIN bandsperfestival bf ON b.band_id = bf.band_id"
+ " JOIN podia p ON bf.pod_id = p.pod_id", lijstParams);
ResultSet bands = connectie.haalResultSetOp();
与另一个查询相同的方法完全如下:
//ResultSet aanmaken voor het gekozen festival
connectie.voerQueryUit("SELECT f.fest_id, f.fest_naam, f.fest_locatie, f.fest_datum, f.fest_duur, f.fest_einddatum, f.fest_url"
+ " FROM festivals f"
+ " WHERE f.fest_naam = ?", lijstParams);
ResultSet fest = connectie.haalResultSetOp();
fest.first();
在我的HTML中,我这样做:
<ul>
<% while (bands.next()) { %>
<li><%= bands.getString("band_naam") %></li>
<li>Podium: <%= bands.getString("pod_omschr") %></li>
<% } %>
</ul>
变量connectie是具有以下函数的类的实例:
public void voerQueryUit(String query, List<String> parameters)
{
try
{
if(parameters.size() > 0)
{
//Reden preparedStatement: geen SQL-Injectie!
prepStatement = connectie.prepareStatement(query);
//Lijst met parameters uitlezen om de preparedStatement op te vullen
for(int i=1; i<=parameters.size(); i++)
{
prepStatement.setString(i, parameters.get(i-1));
}
inhoudQuery = prepStatement.executeQuery();
}
else
{
statement = connectie.createStatement();
inhoudQuery = statement.executeQuery(query);
}
}
catch(Exception e)
{}
}
public ResultSet haalResultSetOp()
{
return inhoudQuery;
}
我知道这可以使用多次。
答案 0 :(得分:0)
Query
没有问题。
我认为错误与Code.
答案 1 :(得分:-1)
这会改变吗:
SELCT b.band_naam, p.pod_omschr
FROM bands b, bandsperfestival bf, podia p
WHERE b.band_id = bf.band_id AND bf.pod_id = p.pod_id