我将用户相关信息拆分为多个表。我正在尝试编写一个连接来检索单个用户的数据,很多信息都是可选的,因此许多列的条目可能为null,这是可以的。我编写了以下查询,它正在工作,但是当我想要id为'69'的用户时它会返回所有用户
SELECT cur_doctor_names.First_Name, cur_doctor_Names.Last_Name, w.Website
FROM cur_doctor_names
LEFT JOIN (
SELECT *
FROM cur_website
WHERE Userid =69
) AS w ON cur_doctor_names.UserId = w.Userid
我想要以下结果:
First_Name | Last Name | Website
ABC XYZ Null
其中ABC是id为69的用户的名称。
答案 0 :(得分:2)
您只是过滤网站,因为您使用的是左连接。您应该将过滤器应用于医生表
SELECT
cur_doctor_names.First_Name,
cur_doctor_Names.Last_Name,
w.Website
FROM
cur_doctor_names
LEFT JOIN cur_website AS w
ON cur_doctor_names.UserId = w.Userid
WHERE
cur_doctor_names.UserId = 69
答案 1 :(得分:2)
尝试这样写 - 你的where子句在错误的位置(你的左连接也不需要这样写):
SELECT cur_doctor_names.First_Name, cur_doctor_Names.Last_Name, w.Website
FROM cur_doctor_names
LEFT JOIN cur_website as w
ON cur_doctor_names.UserId = w.Userid
WHERE cur_doctor_names.userId = 69
答案 2 :(得分:1)
我想你可以写
SELECT cur_doctor_names.First_Name, cur_doctor_Names.Last_Name, w.Website
FROM cur_doctor_names
LEFT JOIN cur_website w ON cur_doctor_names.UserId = w.Userid
WHERE Userid =69