【发布时间】:2019-07-19 10:49:10
【问题描述】:
主表有 4 列:
用户活动表
userActivityId userId therapistId activityId
1 1 1 1
这些列中的每一列都是一个表,这些值都是外键。
基本上,我正在尝试运行一个查询,该查询将加入用户表并根据用户 ID 提取他们的名字和姓氏。与治疗师相同 - 加入治疗师表,提取名字 + 姓氏。最后加入到 Activity 表并从 Activity Id 中提取 Activity 名称和路径
其他表如下所示:
User Table
userId fName lName
Therapist Table
therapistId therapistFirstName therapistLastName
Activity Table
activityId activityTitle activityPath
到目前为止,我的查询看起来像
SELECT
User_Activities.userId,
User_Activities.therapistId,
User_Activities.activityId,
Activities.activityTitle,
Activities.activityPath,
Users.fName,
users.lName,
Therapists.therapistFirstName,
Therapists.therapistLastName
FROM
User_Activities
INNER JOIN Users
ON User_Activities.userId = Users.userId
INNER JOIN Therapists ON
User_Activities.therapistId = Therapists.therapistId
INNER JOIN Activities ON
Activities.activityId = User_Activities.userActivityId
WHERE
User_Activities.userId = 1;
当我运行这个查询时,它只返回 1 行作为结果。但是,在 User_Activites 表中有两个活动分配给了 userId 1。
如果我改变:INNER JOIN 活动开启 活动.activityId = User_Activities.userActivityId
从 INNER JOIN 到 LEFT JOIN 将显示第二行,但 activityTitle 和 activityPath 将在第二行显示为 NULL。
userActivityId userId therapistId activityId activityId activityTitle activityPath fName lName therapistFirstName therapistLastName
1 1 1 1 1 Brain GZZ0zpUQ S C M D
11 1 1 1 NULL NULL NULL S C M D
【问题讨论】: