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