1

我正在努力寻找如何对本地数据库上的一组表进行特定查询。

CREATE TABLE Gym (
eid INT PRIMARY KEY,
name VARCHAR(127) UNIQUE,
district VARCHAR(127),
area INT);

CREATE TABLE Trainer (
id INT PRIMARY KEY,
name VARCHAR(127),
birth_year INT,
year_credentials_expiry INT
);

CREATE TABLE Works (
eid INT,
id INT,
since INT,
FOREIGN KEY (eid) REFERENCES Gym (eid),
FOREIGN KEY (id) REFERENCES Trainer (id),
PRIMARY KEY (eid,id));

问题如下:我有几个健身房,在某些情况下,两个或多个健身房位于同一地区。我怎么知道,按地区,哪个健身房的教练少?我唯一设法得到的是每个健身房的教练数量。考虑到这一点,我只能得到所有地区训练师最少的健身房……

注意:我不允许使用子查询(在 SELECT 中选择;在 FROM 中选择)

先感谢您。

4

1 回答 1

0

如果您可以在whereorhaving子句中有子查询,那么您可以通过这种方式处理它。

首先查看按地区计算培训师人数的查询。

现在,编写一个查询(使用它作为子查询)来计算一个地区健身房中培训师的最少数量。

接下来,获取您的第一个查询,添加一个有子句,并按地区和培训师人数将其与第二个相关联。

这确实在子查询中使用了子查询,但它在having子句中。我不是为您编写查询,因为您需要自己学习如何执行此操作。

顺便说一句,如果您有窗口/分析功能,可能还有其他解决方案。

于 2012-12-12T22:41:19.267 回答