MYSQL 3table连接查询不起作用

时间:2013-04-10 13:27:05

标签: mysql phpmyadmin

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

这是我的疑问:

"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做这个,因此引用。

这是表格的样子:

Bands

Bandsperfestival(桥牌桌) Bandsperfestival (bridge)

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

我知道这可以使用多次。

2 个答案:

答案 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