MySQL - 使用Join运算符后重复列

时间:2015-12-14 21:34:44

标签: mysql join duplicates operator-keyword

正如标题中所述,我正在使用此JOIN查询获取重复列。 给出了几个表,我想编写select语句来获取 来自表格的信息。

到目前为止,这是我的SQL代码:

    SELECT mitarbeiter.PNR, pfleger.PNR, Name
    from pfleger
    JOIN mitarbeiter on (mitarbeiter.PNR=pfleger.PNR)
    where Ort='Frankfurt';

执行后,我得到以下结果:

MySQL table

你可以看到问题:我有两个我不想要的PNR列。 我该如何删除副本?我尝试了SELECT DISTINCT ...,但它没有实现我的目标。

4 个答案:

答案 0 :(得分:0)

在语句的select部分中,引用任一表(mitarbeiter,pfleger)中的PNR列,但不是两者:

SELECT 
  mitarbeiter.PNR, 
  Name 
from pfleger JOIN mitarbeiter on (mitarbeiter.PNR=pfleger.PNR) 
where Ort='Frankfurt';

答案 1 :(得分:0)

只需从选择中删除一个:

SELECT mitarbeiter.PNR, Name from pfleger JOIN mitarbeiter on (mitarbeiter.PNR=pfleger.PNR) where Ort='Frankfurt';

答案 2 :(得分:0)

select distinct适用于行,而不适用于列。在列列表中,只需选择一个PNR列:

SELECT mitarbeiter.PNR, Name from pfleger JOIN mitarbeiter on (mitarbeiter.PNR=pfleger.PNR) where Ort='Frankfurt';

答案 3 :(得分:0)

正如其他用户已经提到的,您只需要从SELECT子句中删除字段名称。我只想补充一点,如果您加入的字段在两个表中具有相同的名称,则可以使用特殊语法,这允许将两个列作为单个列引用:

SELECT PNR, Name
from pfleger
JOIN mitarbeiter USING (PNR)
where Ort='Frankfurt';