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;