MYSQL 3表联接查询不工作

MYSQL 3表联接查询不工作,mysql,phpmyadmin,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实现这一点,因此引用 以下是表格的外观: 乐队 Bandsper

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

这是我的疑问:

"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(桥接表)

裙房

有人能发现我的错误吗

以下是所需的更多代码: 这在标签中

使用另一个查询的相同方法的工作原理如下:

        //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;
}
public void voerQueryUit(字符串查询,列表参数)
{
尝试
{
如果(parameters.size()>0)
{
//Reden preparedStatement:geen SQL注入!
prepStatement=connectie.prepareStatement(查询);
//Lijst符合参数要求,并编制了相关报表

对于(int i=1;i而言,
Query
没有问题


我认为错误是与
代码有关。

是否可以改为:

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 

它应该可以工作,因为没有任何错误。你遇到了哪个错误?这就是我想的,它应该可以工作…我没有收到任何错误,我使用的是glassfish和phpmyadmin。日志中也没有错误。我没有得到任何结果。请分享一些你尝试过的代码。我没有给你否决票;)不幸的是,这不起作用。我没有投反对票,但我可以提出几个原因:(I)您使用的是隐式连接语法,而不是显式连接语法-前者通常不受欢迎;(ii)您有拼写错误
SELECT
;(iii)此查询在功能上与原始查询相同,因此可能会出现与原始查询相同的问题。我确实更正了SELCT,这没什么大不了的,但我确实需要显式联接。我不这么认为,在执行相同的查询但仅选择pod_id时,我会得到我想要的结果。您将结果存储在
数组中的什么位置,或
String
?仅在“ArrayList”中传递参数a。其他所有操作都使用“ResultSet”完成。在这种情况下,请提供代码
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