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