-1

エラー コード: 1248.すべての派生テーブルには独自のエイリアスが必要です。

ケース-1:

SELECT max(avg_sal), min(avg_sal) 
FROM (SELECT dept , avg(salary) as avg_sal from Employee e  GROUP BY dept HAVING dept in ('Admin','IT')); 

12:04:44 SELECT max(avg_sal), min(avg_sal) FROM (SELECT dept , avg(salary) as avg_sal from Employee e GROUP BY dept HAVING dept in ('Admin','IT')) LIMIT 0, 1000 エラーコード: 1248. すべての派生テーブルには独自のエイリアスが必要です 0.000 秒

ケース:2

SELECT max(avg_sal), min(avg_sal) 
FROM (SELECT dept , avg(salary) as avg_sal from Employee e  GROUP BY dept HAVING dept in ('Admin','IT')) as dept; 

それから私は得る

SELECT max(avg_sal), min(avg_sal) FROM (SELECT dept , avg(salary) as avg_sal from Employee e GROUP BY dept HAVING dept in ('Admin','IT')) as dept;

部署

@Entity
public class Dept {
    @Id
    @GeneratedValue
    private Integer id;
    private String name;
}

従業員

@Entity
@NamedQuery(name = "Employee.findMaxSalariesByDept", 
            query = "SELECT e.dept, MAX(e.salary) FROM Employee e GROUP BY e.dept.name HAVING e.dept.name in ?1")
public class Employee {
    @Id
    @GeneratedValue
    private Long id;
    private String name;
    @ManyToOne(cascade = CascadeType.ALL)
    private Dept dept;
    private int salary;
}

テーブルを表示:

CREATE TABLE `employee` (
   `id` bigint(20) NOT NULL AUTO_INCREMENT,
   `name` varchar(255) DEFAULT NULL,
   `salary` int(11) NOT NULL,
   `dept_id` int(11) DEFAULT NULL,
   PRIMARY KEY (`id`),
   KEY `FKfow2bhgypdy2ij4oyukrn6cqw` (`dept_id`)
 ) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
4

1 に答える 1