结果集操作


mysql> SELECT mi.foodName, mi.price, mi.calories, mi.specialComments, 
ind.ingredient FROM FoodTruck ft LEFT JOIN 
Menu mi ON mi.truckID = ft.truckID LEFT JOIN Ingredients ind ON 
ind.menuID = mi.menuID;
+----------------------+-------+----------+-----------------+-----------------+
| foodName             | price | calories | specialComments | ingredient      |
+----------------------+-------+----------+-----------------+-----------------+
| NULL                 |  NULL |     NULL | NULL            | NULL            |
| NULL                 |  NULL |     NULL | NULL            | NULL            |
| dustins dark rum     |   3.5 |      285 | yummy           | dark rum        |
| dustins dark rum     |   3.5 |      285 | yummy           | ice             |
| rad rachels rumchata |     3 |      375 | dairy free      | rumchata        |
| rad rachels rumchata |     3 |      375 | dairy free      | almond milk     |
| rad rachels rumchata |     3 |      375 | dairy free      | chocolate syrup |
| rad rachels rumchata |     3 |      375 | dairy free      | ice             |
| NULL                 |  NULL |     NULL | NULL            | NULL            |
| NULL                 |  NULL |     NULL | NULL            | NULL            |
+----------------------+-------+----------+-----------------+-----------------+
10 rows in set (0.01 sec)

所以,这里是mySql查询和结果,通过PreparedStatement,保存在ResultSet中。我究竟如何获取信息?我知道我可以有: while(rs.next()) { int x = resultSet.getInt(); String y = resultSet.getString();}

但是有没有办法在处理结果集时不重复食物名称、价格、卡路里和特殊注释?我只需要dustins dark rumrad rachels rumchata,然后是每种成分。基本上,正如您从我的查询中看到的那样,这是根据第三个表的信息从两个不同的表连接的。所以。。。这有点复杂。不确定如何继续或是否可以微调我的 sql 查询......谢谢!!

您不能在 1 个查询中执行此操作。您可以执行 2 个查询(一个用于菜单,第二个用于成分)。

您的另一个选择是将类似于 GROUP_CONCAT 函数的内容与 GROUP BY 子句结合使用。请参阅我可以将多个 MySQL 行连接成一个字段吗?

相关内容

  • 没有找到相关文章

最新更新