1

我正在尝试制作一个表格来显示它的全部内容,即使可能有一些空单元格。该表包含一个小俱乐部的十个可能的职位(即主席、秘书等)。每个职位指的是成员表中的一个成员 ID,具体取决于谁被选为该职位。一个职位可能是空缺的,这就是我想要完成的。结构(简化)如下:

表“成员”

CREATE TABLE members (
    id_member INT NOT NULL,
    member_name VARCHAR(45),
    PRIMARY KEY (id_member));

表“职位”

CREATE TABLE positions (
    id_position INT NOT NULL,
    position_name VARCHAR(45),
    PRIMARY KEY (id_position)
    FOREIGN KEY (id_member) REFERENCES members(id_member));

选择语法

SELECT position_name, member_name
FROM members
JOIN positions USING(id_members);

只要位置上有成员,它就可以很好地工作,但如果它是空的,则不会出现该行。即使列 id_member 有空单元格,是否有某种方法可以使表位置始终返回每一行?
期望的结果:
Chariman - Jack Carver
秘书 - Joe Hill
Accounter - NULL
Webmaster - Joanna Robson

4

2 回答 2

5

改为使用LEFT JOIN并交换 tableNames

SELECT position_name, member_name
FROM   positions
       LEFT JOIN members USING(id_members);

要全面了解联接,请访问以下链接:

于 2013-01-25T08:07:05.100 回答
0
SELECT position_name, member_name
FROM members
LEFT JOIN positions
ON members.id_member = positions.id_member;
于 2013-01-25T08:10:37.067 回答