Sql 如何在没有重复列的情况下进行左联接?
我必须连接两个表,我要连接的第一个表包括:Sql 如何在没有重复列的情况下进行左联接?,sql,Sql,我必须连接两个表,我要连接的第一个表包括: Physicians (ID, FirstName, LastName, PracticeID, SpecialtyID, Email) 第二张表是: PhysicianSpecialties( SpecialtyID, SpecialtyName) 我编写此查询是为了将表连接在一起 Select * from physicians right join PhysicianSpecialities on PhysicianSpecialities.
Physicians (ID, FirstName, LastName, PracticeID, SpecialtyID, Email)
第二张表是:
PhysicianSpecialties( SpecialtyID, SpecialtyName)
我编写此查询是为了将表连接在一起
Select *
from physicians
right join PhysicianSpecialities
on PhysicianSpecialities.SpecialtyID = Physicians.SpecialtyID
当我离开的时候,加入他们,桌子现在是
(ID, FirstName, LastName, PracticeID, SpecialtyID, Email, SpecialtyID, SpecialtyName)
我如何重写它,以便只有一个“SpecialtyID”列?您需要指定两个表的列名,而不是(
*
)
使用
选择*,而不是,因此您的查询如下:
SELECT
physicians.ID, physicians.FirstName, physicians.LastName,
physicians.PracticeID, physicians.SpecialtyID, physicians.Email,
PhysicianSpecialities.SpecialtyName
FROM
physicians
LEFT JOIN
PhysicianSpecialities ON Physicians.SpecialtyID = PhysicianSpecialities.SpecialtyID;
我希望它会返回所需的结果。您没有指定正在使用的DBMS产品,但是:在标准SQL中,如果两个表中的联接列具有相同的名称,则可以使用运算符使用进行联接
在这种情况下,“复制”列将自动从结果中删除
选择*
来自医生
使用(SpecialtId)右键连接Physician专业
不过,并非所有DBMS产品都支持这一点 您必须将选择*
替换为命名列。更新您的问题添加适当的数据样本,并以表格形式显示预期结果text@samramos . . . 右连接
在这里似乎不正确。
SELECT
physicians.ID, physicians.FirstName, physicians.LastName,
physicians.PracticeID, physicians.SpecialtyID, physicians.Email,
PhysicianSpecialities.SpecialtyName
SELECT
physicians.ID, physicians.FirstName, physicians.LastName,
physicians.PracticeID, physicians.SpecialtyID, physicians.Email,
PhysicianSpecialities.SpecialtyName
FROM
physicians
LEFT JOIN
PhysicianSpecialities ON Physicians.SpecialtyID = PhysicianSpecialities.SpecialtyID;