在join子句中显示空单元格

时间:2013-01-25 08:05:54

标签: mysql sql select

我正在尝试制作一个表格显示它的全部内容,尽管可能有一些空单元格。该表包含一个小俱乐部的十个可能的职位(即主席,秘书等)。每个位置都是指成员表中的成员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
秘书 - 乔希尔 会计 - NULL
网站管理员 - 乔安娜罗布森

2 个答案:

答案 0 :(得分:5)

使用LEFT JOIN代替并交换tableNames

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

要充分了解联接知识,请访问以下链接:

答案 1 :(得分:0)

SELECT position_name, member_name
FROM members
LEFT JOIN positions
ON members.id_member = positions.id_member;