我有 3 个表用户、产品和订单。
USER:
-----+-----------+------------+---------+----------+-----------+
u_id | username | password | contact | email | city |
------+-----------+------------+---------+---------+-----------+
PRODUCT:
+------+----------+--------------+------+--------------+
| p_id | category | listed_price | qty | description |
+------+----------+--------------+------+--------------+
ORDERS:
+------+--------+------+------+-----------+
| o_id | date | u_id | p_Id | order_qty |
+------+--------+------+------+-----------+
我想按以下顺序将 User 表与 Product 以及 o_id(来自 ORDER)进行内部连接:
+-----------+-------+------+------+--------------+
| username | email | p_id | o_id | listed_price |
+-----------+-------+------+------+--------------+
我的 SQL 查询如下:
productList = (List<Object[]>) session.createSQLQuery(
"SELECT User.username, User.email, Orders.p_id, Orders.o_id, Product.listed_price " +
"FROM Orders " +
"INNER JOIN User " +
"ON User.u_id = Orders.u_id" +
"INNER JOIN Product " +
"ON Product.p_id = Orders.p_id " +
"WHERE Product.p_id = '"+p_id +"' " +
"ORDER BY User.username").list();
最佳答案
它将返回 List<Object[]>
. (对象数组列表),其中每个数组代表结果中的一行。值索引基于您的选择语句。
在这里您可以选择以下内容:
User.username, User.email, Orders.p_id, Orders.o_id, Product.listed_price
因此您将在每个对象数组中获得 5 个元素。其中第一个元素是用户名,第二个元素是电子邮件,依此类推...
关于java - 我应该采用哪种类型的列表来从另一个表中加入(内部)2 个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15083648/