单例选择多行:如何显示多个结果?

时间:2014-02-07 13:26:16

标签: sql select netbeans singleton rows

我目前正在尝试在NetBeans中显示多个电话号码,但似乎我的数据库的SQL查询远非完美。它总是告诉我:单行选择多行。

代码允许我获得一个号码,如果它只属于一个人,但是有一个号码属于三个人,我需要所有这三个号码出现。提前谢谢!

String telephoneQuery3 = "select * from HAS_COMPETENCE where aid = (select aid from EMPLOYEE where telephone = '" + telephone + "')";

2 个答案:

答案 0 :(得分:0)

您应该使用=时使用in

select *
from HAS_COMPETENCE hc
where hc.aid in (select e.aid from EMPLOYEE e where e.telephone = '" + telephone + "')

问题是子查询返回多个值。使用=,引擎只需要一个值。 in修复此问题,因此需要一个值列表。

我还在查询中添加了表别名。这标识了字段来自哪些表 - 以避免混淆查看查询的人。

答案 1 :(得分:0)

=比较只有在右边的表达式返回一行时才有效,insetad使用IN

select * from HAS_COMPETENCE where aid IN (select aid from EMPLOYEE where telephone = '" + telephone + "')";