【发布时间】:2021-01-15 12:24:30
【问题描述】:
我尝试使用 jpql 从 student 和 class_student 表中获取班级 ID。
我给一个像('name1', 'name2', 'name5')这样的学生的学生列表,然后如果这个列表被分配给班级,那么我将有班级ID(班级ID = 2)。
注意:该列表是唯一的,这意味着该列表仅属于一个类。
CREATE DATABASE test;
USE test;
CREATE TABLE CLASS
( ID BIGINT NOT NULL PRIMARY KEY,
NAME VARCHAR(255) NOT NULL
) CHARSET = utf8mb4;
CREATE TABLE STUDENT
( ID BIGINT NOT NULL PRIMARY KEY,
NAME VARCHAR(255) NOT NULL,
constraint UK_NAME
unique (NAME)
)CHARSET = utf8mb4;
CREATE TABLE CLASS_STUDENT
(ID BIGINT NOT NULL PRIMARY KEY,
CLASS_ID BIGINT NOT NULL,
STUDENT_ID BIGINT NOT NULL,
CONSTRAINT FK_STUDENT
FOREIGN KEY (STUDENT_ID) REFERENCES STUDENT (ID),
CONSTRAINT FK_CLASS
FOREIGN KEY (CLASS_ID) REFERENCES CLASS (ID)
)CHARSET = utf8mb4;
INSERT INTO CLASS (ID, name)
VALUES (1, 'class1'),
(2, 'class2'),
(3, 'class3');
INSERT INTO STUDENT (ID, name)
VALUES (1, 'name1'),
(2, 'name2'),
(3, 'name3'),
(4, 'name4'),
(5, 'name5');
INSERT INTO CLASS_STUDENT (ID, CLASS_ID, STUDENT_ID)
VALUES (1, 1, 1),
(2, 1, 2),
(3, 1, 3),
(4, 1, 4),
(5, 2, 1),
(6, 2, 3),
(7, 2, 5),
(8, 3, 1),
(9, 3, 3),
(10, 3, 4),
(11, 3, 5);
【问题讨论】:
标签: sql hibernate jpql having-clause relational-division