我有 2 个 SQL 表:NAMES
并且RELATIONSHIPS
目前NAMES
只有 2 列:name
和name_id
. 另一个是表中人员之间的关系NAMES
列表。它有 3 列:primaryperson_id
、relatedperson_id
和relationship_id
。primaryperson_id
和related_person_id
是表中的name_id
s NAMES
。每个人都NAMES
可以在的主要列或相关列中有多个条目RELATIONSHIPS
(这是多对多关系吗?)。
此查询有效:
SELECT people.name AS 'primary', relationships.related_person_id AS relatedto
FROM relationships
JOIN people
ON people.name_id=relationships.primary_person_id
ORDER BY people.name_id;
但我想在relatedto
列中显示一个名称(即文本)而不是 ID 号。我怎样才能做到这一点?
您可以在连接表时分配表别名,就像您对列名所做的那样。它不仅为您节省了大量的打字,而且使代码更具可读性,并且解决了两次加入同一张表的问题。
在上面的示例中,我已将
p1
and分配p2
给people
表和r
表relationships
。注意:一些数据库平台不喜欢“AS”关键字。如果需要,您可以一起跳过“AS”,如下所示: