如何显示两列名称?

时间:2016-10-11 21:51:39

标签: sql

SQL问题

我有一个学生表(ID和姓名)

我有另一张朋友表(ID1和ID2)

create table Students(ID int, name text);
create table Friends(ID1 int, ID2 int);

如果我输入:

SELECT Friends.ID1, Friends.ID2 FROM Friends

我明白了:

http://image.prntscr.com/image/d6e599ee5bd74c13822339afeb4c05ab.png

我想我需要使用:

SELECT Strudets.Name 
from Friends, Strudents 
Where Strudents.ID=Friends.ID

我想要显示两列名称

我需要在Students表中查找Friends.ID1并获取Strudents.name,然后对Friends.ID2执行相同操作,然后显示两个名称

使用更多信息进行编辑

当我输入时:



SELECT id1, name
FROM friends
INNER JOIN students
ON friends.id1 = students.id




我明白了:

Lista de una sola columna

我需要显示两列名称

来自@kbbal的答案



SELECT s1.NAME, s2.NAME
FROM FRIENDS
INNER JOIN STUDENT s1 ON FRIENDS.ID1 = s1.ID
INNER JOIN STUDENT s2 ON FRIENDS.ID2 = s2.ID




我喜欢这个网站! < 3

1 个答案:

答案 0 :(得分:2)

你看起来很新,所以我会提出一个方法。

  1. 将好友表加入学生表。您应该首先为第一个朋友执行此操作,因此请在常用ID上加入表。这将是学生表中的id列和friends表中的id1。
  2. 再次加入学生表。这次在friends表的id2上执行连接
  3. 指定您希望SELECT语句中的id1,name,id2,name
  4. 您的最终答案应该会在学生表中为您提供朋友的ID以及与其ID相对应的姓名。

    根据评论进行修改:

    以下是联接的方法:

    SELECT friends.id1, s1.name, friends.id2, s2.name
    FROM friends
    INNER JOIN students s1
    ON friends.id1 = s1.id
    INNER JOIN students s2
    ON friends id2 = s2.id
    

    诀窍是实际加入学生表两次,每个朋友一次。然后你只需要创建别名(s1和s2),这样你就可以区分这两个实例。