我想執行一個簡單的查詢,其中三個表連接在一起創建一個。 我一直想弄清楚爲什麼我沒有得到任何結果。MYSQL 3table連接查詢不起作用
這是我的查詢:
"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>
該變量連接即是一個具有這些功能的類的實例:
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;
}
我知道這個工作方式,因爲它已被多次使用。
它應該工作,因爲沒有任何錯誤。 – 2013-04-10 13:33:18
你有哪個錯誤? – 2013-04-10 13:35:22
這就是我認爲的,它應該工作... 我沒有得到任何錯誤,我使用glassfish和phpmyadmin。 日誌中也沒有錯誤。我沒有得到任何結果。 – DerpyNerd 2013-04-10 13:37:35