【问题标题】:selecting data from two tables [closed]从两个表中选择数据[关闭]
【发布时间】:2012-09-13 04:39:35
【问题描述】:

我正在使用休眠来创建这两个表。 我有像student(id, username, loginame) 这样的表和像class(id, classname, studentname) 这样的另一个表

这里我常用的列是学生表username和班级表studentname

现在我的问题是如何选择

id, username and classname

来自这两个表。

注意:

  1. 我的列名需要与此相同,请不要提供更改列名之类的建议。
  2. 这两个表之间没有任何关系。如果我有我可以使用连接。我唯一的关系是我将姓名存储在 student.username 和 class.studentname 中。
  3. 我使用的是 postgresql 8.4。

更多详情您可以查看此链接

https://dba.stackexchange.com/questions/22703/how-can-i-get-data-from-two-tables/22719#22719.

这是我的基本问题。如果我使用两个表而不相互连接来实现这一点(发布问题),那么我可以轻松获得预期的结果。

【问题讨论】:

  • 这是作业吗?既然这样也没关系,只是最好这么说。
  • 如果你坚持不使用连接,你可能需要一个子查询。
  • 感谢您理解我的问题,现在我该如何编写子查询,您能帮帮我吗?我希望您也可以在规定的 URL 中看到我的 子查询
  • 等一下,您是在询问 SQL 答案,还是休眠 HQL?如果这是关于 Hibernate,请尝试添加您的实体类或映射。
  • 我正在使用 Hibernate 和 PostgreSQL 。以上**链接**我清楚地解释了我的问题我的Hibernate类是如何存储在这两个表中的值。请检查一下。

标签: hibernate postgresql


【解决方案1】:
SELECT student.id, student.username, class.classname 
    FROM student LEFT JOIN class ON username = studentname;

【讨论】:

  • 我是对不起我第一次没有清楚地解释我的问题。你现在可以检查我的问题吗?我刚刚编辑了我的问题。
  • 我还是不明白为什么加入没有帮助?你能解释一下吗?
  • 基本上我使用的是 Hibernate 类,如果我们有 java 引用,那么只有我们可以加入它们中的每一个,否则 Hibernate 会抛出一个异常,说“PATH is EXPECTED”。所以这就是为什么在我的情况下加入不起作用。
【解决方案2】:

您可以在学生和班级之间使用普通连接。

类似

SELECT  s.id, 
        c.id, 
        s.username, 
        c.classname          
FROM    student s INNER JOIN              
        class c ON s.username = c.studentname

看看

SQL Fiddle DEMO

【讨论】:

  • 我是对不起我第一次没有清楚地解释我的问题。你现在可以检查我的问题吗?我刚刚编辑了我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-10
  • 1970-01-01
  • 2012-11-18
相关资源
最近更新 更多