USE ASSOCIATION_MANAGEMENT CREATE TABLE Employee ( emp_id INT PRIMARY KEY, emp_name VARCHAR(50) NOT NULL, emp_age INT, emp_gender VARCHAR(10)); --创建社团表 CREATE TABLE Club ( club_id INT PRIMARY KEY, club_name VARCHAR(50) NOT NULL, club_leader VARCHAR(50), club_location VARCHAR(50)); --参加活动编号 CREATE TABLE ajoin( emp_id INT, club_id INT, join_date DATE, PRIMARY KEY (emp_id, club_id), FOREIGN KEY (emp_id) REFERENCES Employee(emp_id), FOREIGN KEY (club_id) REFERENCES Club(club_id)); --活动 CREATE TABLE Activity ( activity_id INT PRIMARY KEY, activity_name VARCHAR(50) NOT NULL, club_id INT, activity_leader VARCHAR(50), activity_location VARCHAR(50), activity_time DATETIME, activity_number INT, FOREIGN KEY (club_id) REFERENCES Club(club_id));使用链接查询和分组查询和子查询
时间: 2024-03-09 13:50:30 浏览: 104
好的,您的问题是如何使用链接查询、分组查询和子查询来查询这些表的信息呢?我可以为您提供一些示例代码,让您更好地理解如何实现这些查询。
1. 链接查询
链接查询可以将多个表中的数据进行关联,以便更好地查询它们的信息。以下是一个链接查询的示例代码,它会查询所有员工所参加的活动及其对应的社团名称:
```
SELECT e.emp_name, a.activity_name, c.club_name
FROM Employee e
INNER JOIN ajoin aj ON e.emp_id = aj.emp_id
INNER JOIN Activity a ON aj.club_id = a.club_id
INNER JOIN Club c ON a.club_id = c.club_id;
```
2. 分组查询
分组查询可以将数据按照特定的条件进行分组,以便更好地统计它们的信息。以下是一个分组查询的示例代码,它会查询每个社团中参加活动的员工数量:
```
SELECT c.club_name, COUNT(*) AS num_of_employees
FROM Club c
INNER JOIN Activity a ON c.club_id = a.club_id
INNER JOIN ajoin aj ON a.activity_id = aj.activity_id
GROUP BY c.club_id;
```
3. 子查询
子查询可以将一个查询语句嵌套在另一个查询语句中,以便更好地查询它们的信息。以下是一个子查询的示例代码,它会查询参加社团编号为1的员工所参加的所有活动名称:
```
SELECT activity_name
FROM Activity
WHERE club_id = (
SELECT club_id
FROM Club
WHERE club_name = '社团1'
)
```
希望这些示例代码可以帮助您更好地理解如何使用链接查询、分组查询和子查询来查询这些表的信息。如果您还有其他问题,请随时提出。
阅读全文