0

我正在尝试执行一个简单的查询,其中三个表被连接以创建一个表。我一直在试图弄清楚为什么我没有得到任何结果。

这是我的查询:

"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(桥牌桌) Bandsperfestival(桥牌)

足底亚 足底亚

有人能发现我的错误吗?

这里有一些更多的代码要求:这是在 <% 和 %> 标记内

        //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;
}

我知道这很有效,因为它已被多次使用。

4

2 回答 2

0

没有问题Query

我认为错误在于Code.

于 2013-04-10T13:35:24.677 回答
-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 
于 2013-04-10T13:35:24.973 回答